0
我正在構建一個MVC5應用程序(使用Razor)。在頂部的導航欄中,我有一個按鈕,可用於反饋的表單淡入。我能夠成功地將這些數據發佈到不同的控制器(而不是當前正在生成的頁面),但是我無法使頁面不加載控制器的發佈方法。我可以重新加載當前頁面,但我想阻止任何屏幕更改。這可能嗎?MVC5發佈到控制器無需離開頁面
我嘗試使用an AJAX method來完成這個,但它沒有奏效。
這裏是認爲我當前的代碼:
<div class="modal fade" id="feedbackForm" tabindex="-1" role="dialog" aria-labelledby="feedbackFormLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h5 class="modal-title">Feedback for @ViewBag.Title</h5>
</div>
@using (Html.BeginForm("CreateRemote", "Feedback", FormMethod.Post)) {
<div class="modal-body">
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Pain)
<div class="col-md-10">
@Html.EditorFor(model => model.Pain, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Pain, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<input id="FeedbackSubmit" type="submit" value="Submit" class="btn btn-success" />
</div>
}
</div>
</div>
</div>
編輯
這是我如何修改它的結束使用AJAX:如果我離開
@*@using (Html.BeginForm("CreateRemote", "Feedback", FormMethod.Post)) {*@
<div class="modal-body">
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Pain)
<div class="col-md-10">
@Html.EditorFor(model => model.Pain, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Pain, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<input id="FeedbackSubmit" value="Submit" class="btn btn-success" />
<script type="text/javascript">
$('#FeedbackSubmit').click(function() {
var url = "/Feedback/CreateRemote";
var pain = 10;
$.post(url, { LanId: 'C15919' }, function (data) {
alert(data);
});
})
</script>
</div>
@*}*@
原樣,input
不採取任何操作,並且不會調用控制器。如果我將其更改爲<input type="submit" ....
,則該頁面將更改爲控制器的POST操作。
可以完成,隨着AJAX。 –
我試過了,但沒有奏效。不過,我對AJAX不太熟悉,所以我可能會做錯了。 –
如果您想在不刷新頁面的情況下將數據發佈到後端,AJAX是一種適用的技術。更新您的代碼以顯示您在AJAX上的嘗試。您現在顯示的代碼將執行正常的HTTP發佈,因此對回答您的問題沒有幫助。 –