抱歉,如果這是一個基本問題,但我想知道以下問題。
我一直在按照 MS 指南創建一些 Razor 頁面,但我在以下案例的標題中收到警告。我有一個帶有必需屬性和非必需屬性的簡單類。
public class Deck
{
public int ID { get; set; }
public string Name { get; set; } = String.Empty;
public string? Link { get; set; } = String.Empty;
}
在創建頁面(腳手架)上,我有這個表格:
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Deck.Name" class="control-label"></label>
<input asp-for="Deck.Name" class="form-control" />
<span asp-validation-for="Deck.Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Deck.Link" class="control-label"></label>
<input asp-for="Deck.Link" class="form-control" />
<span asp-validation-for="Deck.Link" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
但是在 Post 方法上,當嘗試更新模型時,它說 Link 可能為空(如下圖所示)。我想知道我是否遺漏了什么或者應該做些什么不同的事情。這是一個問題嗎?如果沒有,我怎樣才能抑制這個訊息?
謝謝你。
uj5u.com熱心網友回復:
您看到的警告只是讓您知道 Deck 中的字串 Link 被定義為可為空的字串,這就是型別后問號的含義。要讓它消失,您需要明確檢查 Link 是否不為空或有值。
最簡單的方法是這樣做
d => d.Link ?? ""
它將用空字串替換空版本鏈接。這可能是也可能不是您想要的,所以請記住,您無需更改任何內容即可使其正常作業。只要您在其為空時不嘗試使用 Link,您就不會遇到任何問題。
雙問號運算子稱為Null-coalescing 運算子。它的作用是檢查左側是否為空,如果是,則使用右側代替。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/517619.html