2009-09-02 15 views
1

これで、しばらくの間、ASP.NET開発者になってからASP.NET MVCを学び始めました。 MVCプロジェクトを開発する際に、私が気づいている主な問題はASP.NETを "アンロック"しようとしていると思います。ASP.NET MVCで検索を実行する

ここに私の質問です:いくつかの入力フィールドを持つページがあります。これらのフィールドは、データベースに対して実行しようとしている検索のパラメータです。ユーザーは、見たいアイテムの種類の横にあるチェックボックスをオンにして、「検索」をクリックします。非常に簡単なもの。

結果を表示するためにページに「ポストバック」する正確な方法を心配するのは難しいです。 jQueryを使用してフォームをシリアライズする方が良いでしょうか?私が作成したEntity Frameworkモデルを使用しますか?

私はMVCとそれが私に与えるコントロールに本当に興奮していますが、私がこれまでの上司に「売る」ためには、これらの初期の障害を乗り越える必要があります。すべてのWebアプリケーションを開発する。読んでくれてありがとう!

答えて

2

入力がHTMLフォーム要素の中にある場合(javascriptが関係する場合は別の話) - default model binding(経路値とクエリ文字列パラメータもバインドします)を使用できます。 - 私はあなたがチェックボックスなどの入力を得た疑いがある

public ActionResult PerformSearch(string query) 
{ 
    //whatever 
} 

をお使いの場合:アクションパラメータに(名前で)それが自動的にフォームの値をバインドします提出の

<form ...> 
    <input type="text" name="query" /> 
    <input type="submit" .../> 
</form> 

。このようなものはうまくいくはずです:

<form...> 

    <input type="checkbox" name="p" value="value1" /> 
    <input type="checkbox" name="p" value="value2" /> 
    <input type="checkbox" name="p" value="value3" /> 
    <input type="checkbox" name="p" value="value4" /> 
    <input type="checkbox" name="p" value="value5" /> 
</form> 

public ActionResult PerformSearch(string[] p) 
{ 
    //whatever 
} 

- (フォームメソッド== "GET")の場合のみ、URLがうまく見えません。 :)

、結果を表示するアクションで、あなたのビューのためのモデルを作成し、ちょうどビューを介して、それを表示するには:

public ActionResult PerformSearch(string[] p) 
{ 
    var model = _searchService(p); 
    return View("Results", model); 
} 

ビュー/ Results.aspx

<% foreach(var bar in Model){ %> 
    <%= bar.Name %> 
<%}%> 

P.S.をAJAXの呼び出しを考慮すると、URL +検索エンジンがJSを理解していないことを示す能力が失われていることを常に忘れないでください。

2

あなたがまだの場合は、Rob ConeryScott HanselmanPhil Haack、およびScott GuthrieによってProfessional ASP.NET MVC 1.0で紹介NerdDinner Tutorial見てみることを検討してください。これには、ASP.NET MVCの多くの機能のデモンストレーションが含まれています。これは、検索を実行し、全面的な投稿とJSONを使用して非同期的にデータを返すことです。

+0

なぜこれが投票されたのですか? –

関連する問題