【发布时间】:2015-08-22 06:27:59
【问题描述】:
我的控制器是
public ActionResult AddCustomer(Customer SM)
{
DataAccessLayer.ConClass obj = new DataAccessLayer.ConClass();
obj.SaveCustumerDetails(SM);
ModelState.Clear();
return PartialView();
}
我的模型是
public class Customer
{
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_id { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Contact_Person { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Contact_Person_Designation { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_name { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Address1 { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Address2 { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_City { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_State { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Country { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_PIN { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Phone1 { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Phone2 { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Email1 { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Customer_Email2 { get; set; }
}
Savecutomer 是按钮的名称。我的部分视图代码是
<script>
$('#SaveCustomer').click(
function () {
$.ajax({
type: "POST",
url: '@Url.Action("AddCustomer", "Customer")',
data: ' $("myform").serialize() ,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
complete: function (data) {
},
});
});
</script>
当我点击savecustomer 按钮时,我需要保存客户详细信息,我不想在 url 上看到详细信息。通过这种方式 url 保存数据。我需要避免它。
【问题讨论】:
-
不清楚是什么问题,这里的问题是什么,能不能具体点?
-
你的方法需要标记
[HttpPost]。如果您显示的是您的 GET 方法,则删除Customer SM参数(永远不要将模型传递给 GET 方法)并删除obj.SaveCustumerDetails(SM);和ModelState.Clear();(您不应该在 GET 方法中保存数据)和添加 POST 方法。 -
另外,你不应该有
contentType: 'application/json; charset=utf-8',并且你指定了dataType: 'json',但是你显示的控制器方法返回 html 这也会引发错误。然后你不会对返回的数据做任何事情。非常不清楚你真正想要做什么。 -
@MaxBrodin 如何通过 ajax 将整个模型传递给我的控制器
-
@StephenMuecke 你能否建议对`数据进行一些编辑:'$("myform").serialize(),`