複雑なオブジェクト (モデル) をビューにバインドする必要があります。私は検索モデルと検索ビューを持っています..
検索モデル、
public class SearchModel
{
public SearchCriteria SearchCriteria { get; set; }
.....
}
検索基準
public class SearchCriteria
{
public int AccountId { get; set; }
public string AccountName { get; set; }
......
}
検索ビュー
@Html.LabelFor(x => x.SearchCriteria.AccountId, "Account ID")
@Html.TextBoxFor(x => x.SearchCriteria.AccountId)
@Html.LabelFor(x => x.SearchCriteria.AccountName, "Account Name")
@Html.TextBoxFor(x => x.SearchCriteria.AccountName)
これは次のようにレンダリングされます
<label for="SearchCriteria_AccountId">Account ID</label>
<input id="SearchCriteria_AccountId" name="SearchCriteria.AccountId" type="text" value="">
<label for="SearchCriteria_AccountName">Account Name</label>
<input id="SearchCriteria_AccountName" name="SearchCriteria.AccountName" type="text" value="">
コントロール名は としてレンダリングされSearchCriteria.AccountId
、SearchCriteria.AccountName
コントロール ID は としてレンダリングされますSearchCriteria_AccountId
。SearchCriteria_AccountName
get リクエストでフォームを送信すると、クエリ文字列は次のようになります。
?SearchCriteria.AccountId=1&SearchCriteria.AccountName=aaa
接尾辞なしで表示するように変更する方法はありますSearchCriteria
か?
したがって、コントロール名は としてレンダリングされAccountId
、AccountName
コントロール ID は としてレンダリングされる必要がありますAccountId
。AccountName
クエリ文字列は次のようになります。
?AccountId=1&AccountName=aaa