我有一個視圖綁定到一個強類型的ViewModel,但我不是使用MVC3 HTML幫手,只是正常的HTML input
標籤。但是,這似乎並沒有正確地將值傳遞給操作方法,因爲ViewModel完全爲空。MVC3 ViewModel在窗體沒有幫助者只有空值
視圖模型:
class QuoteSearch {
public long? CustomerId { get; set; }
public string CustomerFirstName { get; set; }
public string CustomerLastName { get; set; }
}
查看:
@model QuoteSearch
<form action="/quotes/search" method="POST">
<p>Customer ID: <input id="CustomerIdField" name="CustomerId" type="text" /></p>
<p>Customer First Name: <input id="CustomerFirstNameField" name="CustomerFirstName" type="text"/></p>
<p>Customer Last Name: <input id="CustomerLastNameField" name="CustomerLastName" type="text"/></p>
<p><button id="SearchButton" type="submit">Search</button></p>
</form>
控制器:
[HttpPost]
public ActionResult Search(QuoteSearch search) {
// checking if fields are set here.
}
我似乎記得有一種存在的方式,以不必使用HTML傭工,但仍使用一個強類型的模型(與FormCollection
相反);我認爲它涉及到設置名稱屬性是模型上屬性的確切名稱,但我似乎錯了。
QuoteId輸入是一個錯字? viewmodel包含一個CustomerId屬性 – 2012-07-06 15:53:54
奇怪......你的代碼應該工作(期望你有'QuoteId',但是在你的模型'CustomerId'上)。因爲Html幫助器基本上只是以'name'作爲屬性名來呈現輸入元素。 – nemesv 2012-07-06 15:54:44
嘗試改變'name =「QuoteId」'爲'name =「CustomerId」' – 2012-07-06 16:00:57