1

Ajaxに問題があります。複数のフォームを作成し、送信後に1つを含むdivを部分ビューに置き換えたいと思います。1つのフォームだけを使用すると、うまくいきます。ここで何が間違っているのかわかりません。多分それはカスタムeditorforのせいですか?これが私のコードです、私を助けてください、私はこれを2日間試みています。

索引

@model MetriceWeb.Models.TaskInputModel
@{
    ViewBag.Title = "Tasks";
}
<h3>
    Tasks</h3>

@if (Model.Values.Count == 0)
{
   <p>No pendings forms for you at the moment</p>
}
else
{
    @Html.EditorFor(x => x.Values)
}

TaskInputValue(editorfor)

@model MetriceWeb.Models.TaskInputValue
@{string s = "task" + Model.TaskId;}

@using (Ajax.BeginForm("GetFromLibrary", "Metrice", new AjaxOptions
{
HttpMethod = "Get",
UpdateTargetId = s,
InsertionMode = InsertionMode.Replace
}))
{
<div class="editor-field" id="@s">
@Html.HiddenFor(x => x.TaskId, new { @class = "TaskId" , id = "TaskId" })
@Html.HiddenFor(x => x.InputId, new { @class = "InputId" })
<h2>
@Html.DisplayFor(x => x.Task)
</h2>
<span>Created: </span>
@Html.DisplayFor(x => x.Date)

<div>
Input Value

    @Html.EditorFor(x => x.DateValue)
    @Html.ValidationMessageFor(x => x.DateValue)
</div>
<input type="submit" value="Submit" />
</div>
<br />
}

コントローラーのメソッドに入り、部分ビューを返します。divを送信しても置き換えられないので、新しいサイト全体が読み込まれます。ここで何が問題になっていますか?私を助けてください、私は大いに必要としています。

4

1 に答える 1

1

AjaxヘルパーがAjax.BeginForm正しく動作するように(たとえば、AJAXリクエストを送信するために)、ビューで次のJavaScriptファイルを参照する必要があります

jquery.unobtrusive-ajax.js

(そしてもちろんそのjqueryの前に)

ASP.NETMVC3の目立たないAjaxから

興味深い注意:控えめなAjaxを使用すると実際のJavaScriptが発行されないため、いずれかのスクリプトを含めるのを忘れても、Ajaxリクエストを送信しようとしたときにエラーは表示されません。単にAjax以外のリクエストのように動作します。

于 2013-02-15T16:26:56.523 に答える