使用Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "formInfo" })提交数据的问题
2017-04-05 16:59
477 查看
在程序开发中,发现一个问题,在cshtml中,使用
@using (Html.BeginForm("Save", "ITProject", FormMethod.Post, new { id = "formInfo" }))
的方式将表单的数据,用Ajax的方式传给Controller。
但是发现有时候参数无法传到后台。
例如,Ajax的写法是:
$.ajax({
url: $("#formInfo").attr("action"),
data: newProjectInfo,
type: "post",
dataType: 'json',
success: function (r) {
if (r.state == "success") {
$.modalMsg(r.message);
$.loading(false);
}
else {
$.modalAlert(r.message);
$.loading(false);
}
}
, error: function (r) {
$.ajaxErrorProcess(r);
$.loading(false);
}
})
而在Controller中,处理函数的写法是:
public JsonResult Save(DomainEntities.Models.ITProject.ProjectNewInfo projectInfo)
{
try
{
_ProjectService.SaveNewProjectInfo(projectInfo);
return Success("保存成功");
}
catch(Exception ex)
{
FileLogger.Error("保存信息失败", ex);
return Error($"保存失败,{ex.Message}");
}
}
在调试中发现,有时候Save方法的参数(projectInfo)并没有获得Ajax的data值(newProjectInfo)。
解决方式是:
在调用Ajax是,显示的指定
data: {projectInfo:newProjectInfo}
修改为上述格式后,传值成功。
明白人可以帮助解释一下。
@using (Html.BeginForm("Save", "ITProject", FormMethod.Post, new { id = "formInfo" }))
的方式将表单的数据,用Ajax的方式传给Controller。
但是发现有时候参数无法传到后台。
例如,Ajax的写法是:
$.ajax({
url: $("#formInfo").attr("action"),
data: newProjectInfo,
type: "post",
dataType: 'json',
success: function (r) {
if (r.state == "success") {
$.modalMsg(r.message);
$.loading(false);
}
else {
$.modalAlert(r.message);
$.loading(false);
}
}
, error: function (r) {
$.ajaxErrorProcess(r);
$.loading(false);
}
})
而在Controller中,处理函数的写法是:
public JsonResult Save(DomainEntities.Models.ITProject.ProjectNewInfo projectInfo)
{
try
{
_ProjectService.SaveNewProjectInfo(projectInfo);
return Success("保存成功");
}
catch(Exception ex)
{
FileLogger.Error("保存信息失败", ex);
return Error($"保存失败,{ex.Message}");
}
}
在调试中发现,有时候Save方法的参数(projectInfo)并没有获得Ajax的data值(newProjectInfo)。
解决方式是:
在调用Ajax是,显示的指定
data: {projectInfo:newProjectInfo}
修改为上述格式后,传值成功。
明白人可以帮助解释一下。
相关文章推荐
- <form action="get.php" method="post" id="tform"> <input type="text" name="one"> <a href="jav
- <form method=post action="addNew_hxxm.jsp" name="form1"enctype="multipart/form-data">
- form表单提交数据到servlet的action=" "路径问题
- form enctype:"multipart/form-data",method:"post" 提交表单,后台获取不到数据
- 项目____form提交数据,action中接收相关(含ID NAME区别及用法)
- 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法
- PHP form表单post提交 使用var_dump($_POST)获取不到数据 可能是哪里出问题?
- 表单按回车自动提交 1、当form表单中只有一个<input type="text" name='name' />时按回车键将会自动将表单提交。 <form id='form1' action='a
- 后台C#代码获取html控件的值使用的Request.Form["name"] 中间的那个应该是空间的name 而不是id
- form enctype:"multipart/form-data",method:"post" 提交表单,后台获取不到数据
- 使用form表单提交数据打开两个页面的问题
- post数据丢失问题 enctype="multipart/form-data"
- 注册登录过程点滴(三):解决MVC3中使用Ajax.BeginForm会重复提交数据的问题
- 关于(enctype="multipart/form-data") post 提交时中文乱码解决方案(使用jspsmartupload时)
- c++ builder2010 indy控件idhttp, post页面获取数据(要注意编码的问题,双方都使用UTF-8最好)
- 向https提交post数据的问题,{"errcode":40016,"errmsg":"invalid button size"}
- java中form以post、get方式提交数据中文乱码问题总结
- .NET中使用GridView控件输入数据时出现“ Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"的问题
- 使用HttpClient的post提交数据遇到的问题
- Form 表单中的method 若使用get提交方式 则action地址上带的参数将被省略 4000