0

我有一个视图,我在哪里使用:-

@using (Ajax.BeginForm("Edit", "Files", new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "divFile-" + Model.FileId,
OnSuccess = "editPrivilegeLevelForFileSuccess",
OnFailure = "editPrivilegeLevelForFileFailure"
}))
@Html.HiddenFor(model => model.FileId)

这里的问题是UpdateTargetId:-

我的模型目前没有 FileId 值。我正在通过 jquery 方法设置隐藏字段的值,并且效果很好。

$("#FileId").val(fileId);

但是如何在 UpdateTargetId 中设置相同的值?

谢谢你

4

2 回答 2

1

如果仅在客户端知道此属性的值,则可以在 OnSuccess 回调中执行此操作。因此,UpdateTargetId从您的 AjaxOptions 中删除该属性,然后在editPrivilegeLevelForFileSuccess处理程序中您可以手动更新相应的部分:

function editPrivilegeLevelForFileSuccess(result) {
    var fileId = $('#FileId').val();
    $('#divFile-' + fileId).html(result);
}
于 2013-01-13T12:00:25.533 回答
1

好吧,如果您查看如何从 Ajax.BeginForm 生成表单标记:

<form id="form0" action="/Redirects/Manage/List" method="post" novalidate="novalidate" data-ajax-update="#page" data-ajax-mode="replace" data-ajax="true">

您可以使用 jquery 来更改它,例如在下拉列表的 OnChange 事件中:

@Html.DropDownList("language", new SelectList(@Model.Locales, "Key", "Value"), new { onchange = "$(this.form).attr('data-ajax-update','#nowhere');$(this.form).submit();" }
于 2015-01-28T09:41:56.277 回答