強く型付けされたViewModelに関連付けられたビューがありますが、MVC3 HTMLヘルパーを使用しておらずinput
、通常のHTMLタグのみを使用しています。ただし、ViewModelが完全にnullであるため、これはアクションメソッドに値を正しく渡していないようです。
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
)強く型付けされたモデルを使用する方法があることを覚えているようです。name属性をモデルのプロパティの正確な名前に設定する必要があると思いましたが、間違っていたようです。