0

検索プロパティを使用してページを作成しています。ユーザーは検索フィールドに番号を入力し、送信ボタンを押します。検索コードを実行するには、コントローラーメソッドを呼び出すことができる必要があります。

今のところ、私は部分的なページをヒットして、そこにいくつかの機能を追加しようとしています。以下は私がこれまでに持っているコードです。今のところ、ボタンをクリックしても何も起こりません。Ajaxは使用するものだったと聞いているので、少し遊んでいます。私はまだフレームワークを学んでいるので、我慢してください。

<div class="span6 roundedCorners">
    <div class="row-fluid Title">
        <div class="span6">
            Search Area
        </div>
    </div>
    <div class="row-fluid individual">
        <div class="row-fluid">
            <div class="span4"><span class="pull-right fieldDescription">Number</span></div>
            <div class="span8"><input /></div>
        </div>
        <div class="row">
            <div class="span12" id="adminSubmitButton">
                @using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "_adminDetails" }))
                {
                    <button type="submit" class="btn btn-inverse">Submit</button>
                }
            </div>
        </div>
    </div>

4

3 に答える 3

0

助けてくれてありがとう。私は金曜日の夜に問題を解決することになりました。基本的に私がしたことは、JS/jQueryとRazor@Url.Action()の助けを借りてボタンがクリックされたときに部分ページをロードして、PartialViewを返すコントローラーメソッドを呼び出すことでした。

<script type="text/javascript">
    function adminButton()
    {
        var link = "@Url.Action("ControllerMethod", "ControllerClass", new { 
                                         number = -1})";

        var num = parseInt($("#number").val());

        link = link.replace(-1, num);

        $("#details").load(link);
    }
</script>
于 2013-01-22T14:22:36.270 に答える
0

フォームは空です。送信ボタンしかありません。検索ボタンをフォーム内に移動する必要があります。このようなもの:

モデル

public class SearchModel
{
    [Required]
    public string Query { get; set; }
}

意見

@model SearchModel

...
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "_adminDetails" }))
{
   @Html.EditorFor(m => m.Query)
   @Html.ValidationMessageFor(m => m.Query)
   <button type="submit" class="btn btn-inverse">Submit</button>
}

<div id="_adminDetails"></di>

注: id を持つ要素があることを確認してください_adminDetails

コントローラーはモデルを取得して検索を実行する必要があります。例:

コントローラ

 [HttpPost]
 public ActionResult Index(SearchModel model)
 {
    //do something with your model (perform search)
    return View(results);
 }
于 2013-01-17T16:59:56.917 に答える
0

よし、部分的に動作するようになりました。ボタンをクリックすると、次を使用してコントローラーメソッドを呼び出すことができます。

function adminButton()
        {
            $("#adminDetails").load("@Url.Action("ControllerMethod", "ControllerName")");
        }

@Url.Action ヘルパーを使用すると、部分ビューを返すメソッドを呼び出すことができます。これは正しい方向への一歩です。しかし、私が読んでいることから、@Url.Actionの代わりに次のUrlヘルパーを使用できるはずです:

"@Url("ControllerMethod", "ControllerName")/" + submitButton.Value

私はいくつかのバリエーションを試しましたが、解決策を見つけるためにまだ読んでいます。私にこれをさせてくれるヘルパーはいますか?

于 2013-01-18T16:26:01.533 に答える