[英]Bound object never be null
例如,有一些對象將成為強類型視圖的模型:
class SomeModel {
public string SomeUsualField { get; set; }
}
此外,控制器中存在一些可與上面指定的對象一起使用的操作:
public ActionResult Index(SomeModel obj)
{
return View(obj);
}
所以問題是為什么在首次調用Index
動作時obj
不為null
? 它使用null SomeUsualField
創建了SomeModel
類的新實例。
ASP.NET MVC模型綁定基礎結構嘗試用來自請求對象(查詢字符串,表單字段等)的數據填充所有屬性。 因此,它將創建控制器所有參數的實例以嘗試匹配屬性。 因為您沒有傳遞SomeUsualField,所以它為null,但是參數對象具有空實例。
您可以在調用http:// localhost / MySite / MyController / Index?SomeUsualField = test時初始化屬性SomeUsualField。 SomeUsualField屬性將自動用'test'初始化
如果您不想設置參數,則可以將其保留,並使用屬性[HttpPost]進行第二次操作。 音樂商店是一個很好的教程。
public ActionResult Index()
{
var obj = new SomeModel();
return View(obj);
}
[HttpPost]
public ActionResult Index(SomeModel obj)
{
// update logic
return View(obj);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.