ビュー ページに、次のようなユーザー コントロールとして実装された単純なフォームがあります。
<%=Html.BeginForm("List", "Building", FormMethod.Post) %>
//several fields go here
<%Html.EndForm(); %>
解決したい問題が 2 つあります。1 つ目は、これを受け取るコントローラー メソッドがユーザー コントロールの型パラメーターを受け取るようにしたいということです。目標は、フォームのすべてのフィールドをメソッドのパラメーター リストに入れないようにすることです。コントローラ メソッドは現在、次のようになっています。
[AcceptVerbs("Post")]
public ActionResult List(string capacityAmount)
{
ProfilerDataDataContext context = new ProfilerDataDataContext();
IEnumerable<Building> result = context.Buildings.OrderBy(p => p.SchoolName);
ViewData["Boroughs"] = new SelectList(Boroughs.BoroughsDropDown());
return View(result);
}
フォームの残りのフィールドは、建物タイプに対する検索を実行するために使用されます。
フォームは正常に投稿されました。期待どおりに容量を検索できますが、検索にパラメーターを追加すると、醜い匂いがします。
2 つ目の小さな問題は、ページがレンダリングされるときに、BeginForm タグが文字列 "System.Web.Mvc.Form" をページにレンダリングすることです。どうすればそれをなくすことができますか?