重裝父視圖我想實現如下陳述的情景:關閉從使用jQuery子視圖對話框而不在MVC3
我使用MVC 3 Razor視圖。
點擊文本框(稱爲結果文本框),從主頁視圖(這是一個不同的視圖,添加視圖)打開一個對話框,並帶回發到主控制器的動作。
在對話框(即添加視圖)上,只需輸入兩個數字進行添加,並在其提交後,執行添加視圖控制器操作的回傳。
現在,當添加控制器操作處理完成後,我想要添加數字並關閉當前對話框(添加視圖)並更新父視圖(主視圖)上的結果文本框,並添加結果。
注意:關閉對話框後,我不希望父視圖重新加載或刷新。
現在,當我面臨的問題是如何
1)取隱藏字段的值(容器除了值),並設置父頁面上的結果測試盒?
2)從對話框本身關閉對話框(添加視圖)?無需刷新父視圖?
代碼:
<h2> Input numbers to add</h2>
@using (Html.BeginForm("About","Home",FormMethod.Post, new {id = "dialogchildform"}))
{
@Html.Hidden("hdnresult", ViewData["result"], new { id = "hdnres" })
<div style="position: relative; margin-left: 200px; top: 80px">
<fieldset>
@Html.ValidationSummary(true)
<div class="editor-label">
Value 1
</div>
<div class="editor-field">
@Html.EditorFor(model => model.num1, new { id = "num1" })
@Html.ValidationMessageFor(model => model.num1)
</div>
<div class="editor-label">
Value 2
</div>
<div class="editor-field">
@Html.EditorFor(model => model.num2, new { id = "num2" })
@Html.ValidationMessageFor(model => model.num2)
</div>
</fieldset>
<p>
<input type="submit" value="Add and Retrun" id="inputSubmit" />
</p>
</div>
}
<script type="text/javascript">
$(document).ready(function() {
$("#inputSubmit").click(function() {
document.forms('dialogchildform').submit();
// txtParentResult is a Textbox on prent view to be updated
document.getElementById('txtParentResult').value
= document.forms('dialogchildform').hdnres.value;
// not updating the parent textbox
// $(window.document).dialog('close');
//gives error - Microsoft JScript runtime error: Object doesn't support property or method 'dialog'
//$("#mydiag").dialog("close");
// also gives error
//jQuery(".ui-dialog-content").dialog("close");
// again gives error - Microsoft JScript runtime error: Object doesn't support property or method 'dialog'
});
});
</script>
控制器動作:
[HttpPost]
public ActionResult Add(AddNum vAddNum)
{
objAddNum = vAddNum;
int result = objAddNum.AddNumbers();
ViewData["_ActionCloseDialog"] = "true";
ViewData["result"] = result;
return View();
}
Acheived this .. –