Asp.Net MVC 3 表单集合在提交后丢失数据
Asp.Net MVC 3 formcollection losing data after submit
我有一个 Asp.Net 的MVC 3应用程序,在我单击提交按钮后,我想验证在formcollection参数中传递的信息..如果它无效,我返回一个jSon..但在那之后,我的表单集合总是返回null
这发生在Chrome和FFox中。 在IE中它工作正常
我的观点:
<li id="opc-register" class="section allow">
<div id="checkout-step-register" class="step a-item" style="display: none;">
<form id="co-register-form" action="">
<div id="checkout-register-load">
@Html.Action("OpcRegisterForm", "Checkout")
</div>
</form>
<script type="text/javascript">
Register.init('#co-register-form', '@(storeLocation)checkout/OpcSaveRegister/');
</script>
<div class="buttons" id="register-buttons-container">
<button type="button" class="paymentmethodnextstepbutton" onclick="Register.save()">
<span>@T("Common.Continue")</span>
</button>
<span class="please-wait" id="register-please-wait" style="display: none;">
<img src="@Url.Content("~/Content/Images/ajax_loader_small.gif")"
alt="@T("Common.LoadingNextStep")" title="@T("Common.LoadingNextStep")" />
@T("Common.LoadingNextStep")</span>
</div>
</div>
</li>
我的控制器
[HttpPost]
public ActionResult OpcSaveRegister(FormCollection form)
{
var registerModel = PrepareRegisterModel();
registerModel.Email = form["Email"];
registerModel.FirstName = form["FirstName"];
...
if (TryValidateModel(registerModel))
{
....
}
//If we got this far, something failed, redisplay form
return Json(new
{
update_section = new UpdateSectionJsonModel()
{
name = "register",
html = RenderPartialViewToString("OpcRegister", registerModel)
},
goto_section = "register"
});
}
不要在带有 MVC 的帖子上使用 FormCollection。使用强类型 ViewModel,其中包含可在帖子表单中提交的所有属性。
例如,你可以有一个这样的类:
public class RegisterViewModel
{
public string FirstName { get; set; }
public string Email { get; set; }
//...
}
在您看来,您可以使用以下命令设置这些属性:
@Html.EditorFor(m => m.FirstName)
@Html.EditorFor(m => m.Email)
然后对于您的操作,您将拥有
[HttpPost]
public ActionResult OpcSaveRegister(RegisterViewModel registerModel)
{
//...
}
相关文章:
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- jQuery-输入时不提交数据
- 在提交数据之前更改选择表单元素中的值
- CORS问题,同时提交数据到谷歌表单的角度
- 表单未通过POST或GET提交数据
- 我刚刚开始使用 MEAN 堆栈.我试图将我的表单提交数据存储到 mongo 数据库,但我无法这样做
- AJAX 以 JSON 格式向 PHP 提交数据
- Javascript 表单提交数据在提交到PayPal时不会更改
- AJAX 不会提交数据
- 表单不提交数据
- 如何在实际提交之前使用标准提交事件和jquery删除/增强/更改表单提交数据
- 从令牌输入.js提交数据
- 如何在按下回车键(jQuery)时提交数据
- 我如何使用javascript进行验证,然后使用php提交数据
- 提交数据时刷新页面
- 添加行&通过ajax提交数据
- 使用GET变量自动提交数据表搜索
- 引导向导如何在保存或提交数据后将默认活动选项卡(第一个选项卡)覆盖到上一个活动选项卡
- 在向数据库提交数据之前执行onsubmit
- 向服务器提交数据后关闭弹出菜单