簡體   English   中英

綁定對象永遠不會為空

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM