2013-01-13 55 views
0

我有哪裏我使用的一個觀點: -設置UpdateTargetId動態或更改UpdateTargetId

@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中設置相同的值?

謝謝

回答

1

如果此屬性的值是唯一已知的在客戶端你能做到這裏面的onSuccess回調。所以,也會從你AjaxOptions擺脫UpdateTargetId屬性,然後editPrivilegeLevelForFileSuccess處理程序中,你可以手動更新相應部分:

function editPrivilegeLevelForFileSuccess(result) { 
    var fileId = $('#FileId').val(); 
    $('#divFile-' + fileId).html(result); 
} 
+0

真棒人.....你只是天才要比。 :)。 過去3個小時我一直在撓頭。 非常感謝。 – user1960365

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();" } 
+0

最簡單的解決方案。我也做了同樣的:) – Alexander

相關問題