如何在我的mvc页面中发布表单后显示一条消息并在表单中保留添加/选择的数据。我试图渲染一个部分视图但是渲染一个只包含实际部分视图的空白页面。
<div id="resultTarget">
@Html.Partial("CalculationResult", new Model.CalculatedPrice())
</div>
[HttpPost]
public PartialViewResult GetPrice(FormCollection formCollection)
{
// This renders only the partialview
return PartialView("CalculationResult", model);
}
答案 0 :(得分:1)
如果您使用表单帖子重新加载页面,数据将会丢失。使用@Html.TextBoxFor()
,@Html.ListBoxFor()
等创建视图模型并将控件绑定到特定属性。
现在不是将表单提交回控制器,而是使用javascript通过按钮单击功能将数据发回控制器。
见下面的代码:
按钮点击功能:
var modelObj = {};
modelObj.prop1 = $('#txtField1').val();
modelObj.prop2 = $('#txtField2').val();
var postObj = JSON.stringify(modelObj); // convert object to json
$.ajax({
type: "POST",
traditional: true,
dataType: "json",
url: "/SomeController/GetPrice",
data: { formCollection: postObj }
cache: false,
success: function (data) {
if (data) {
//Some Code if post success
}
else {
// Some code if post failed
}
}});
在SomeController中:
[HttpPost]
public JSonResult GetPrice(FormCollection formCollection)
{
// Do your action with the formCollection object here
// if(action.success)
{
return JSon(true);
}
return JSon(false);
}
这样就可以防止重新加载页面并将数据保存在表单中。