我的工作包含兩種形式來看,是返回serilaized到JSON字符串單獨的控制器行爲處理:處理的Json結果在ASP.NET MVC使用jQuery
return Json(message);
的形式使用jQuery提交通過點擊兩個表格之外的按鈕。 按鈕處理程序:
$('#inviteForm').ajaxSubmit({
success: function(html, status) {
$("#response").text(html);
}
})
$('#trialForm').ajaxSubmit({
success: function(html, status) {
$("#response").append(html);
}
});
的瀏覽器接收該結果,並提示用戶,因爲它被解釋爲「應用程序/ JSON」下載。
但是,如果我只在jQuery中提交這些表單中的一個,那麼生成的Json消息會根據需要顯示爲#response元素中的字符串。
爲什麼添加第二個ajaxSubmit()會導致這種不同的行爲?
謝謝。
該視圖包含以下幾種形式:
<form action="/Controller1/SaveAttachments/<%=Model.ObjectId %>" id="trialForm" method="post" enctype="multipart/form-data">
<input type="file" name="trialForm" size=30/>
<input type="file" name="trialSheet" size=30/>
<input type="file" name="trialApproval" size=30/>
</form>
和...
<form action="/Controller1/UpdateTemplate/<%=Model.ObjectId %>" id="inviteForm" method="post" enctype="multipart/form-data">
<%=Html.TextArea("invitationSheet", Model.InvitationSheet,
new { @name = "invitationSheet"})
<script type="text/javascript">
window.onload = function() {
var sBasePath = '<%=Url.Content("~/Content/FCKeditor/")%>';
var oFCKeditor = new FCKeditor('invitationSheet');
oFCKeditor.BasePath = sBasePath;
oFCKeditor.HtmlEncodeOutput = true;
oFCKeditor.ReplaceTextarea();
}
</script>
您是否嘗試更改第二次提交來設置文本而不是附加到DOM?這是兩者之間的顯着差異,但我不確定爲什麼會導致這種行爲。 – tvanfosson 2009-09-25 14:24:19
感謝您的建議。我已經嘗試了.text()和.append(),但行爲沒有區別。還有一點是第一個ajaxSubmit的結果顯示在#response中 - 它是第二個ajaxSubmit的結果,它被解釋爲「application/json」。 – TonE 2009-09-25 14:27:55
我剛剛嘗試從控制器操作中註釋掉所有代碼,因此代碼現在返回Json(「Action1」)並返回Json(「Action2」)。仍然得到相同的行爲。將視圖上的表單代碼添加到我原來的帖子中... – TonE 2009-09-25 14:35:21