我正在开展一个项目,我需要对控件进行内联编辑。我想使用视图编辑模型的属性,然后想使用jquery ajax将其发送到控制器。如何使用$ .ajax()
将完整模型发送到控制器我的模特是:
public class LeadDetail
{
public int EntityID { get; set; }
public string EntityName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public int PhoneType { get; set; }
public string PhoneNumber { get; set; }
public string PhoneExt { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string City { get; set; }
public int State { get; set; }
public string ZipCode { get; set; }
public string Country { get; set; }
public decimal Amount { get; set; }
public string LeadAssignedToName { get; set; }
public int RelatedAccount { get; set; }
public string LeadStatusName { get; set; }
public string LeadRatingName { get; set; }
public string LeadSourceName { get; set; }
public string CampaignName { get; set; }
public int LeadType { get; set; }
public string Url { get; set; }
public string Comments { get; set; }
public int Subscribed { get; set; }
public string CreatedDate { get; set; }
public string CreatedBy { get; set; }
public string utm_source { get; set; }
public string utm_term { get; set; }
public string IPAddress { get; set; }
public string utm_medium { get; set; }
public string utm_campaign { get; set; }
public string utm_content { get; set; }
public int RelatedAccountId { get; set; }
public int LeadTypeID { get; set; }
public int CampaignID { get; set; }
public string BirthDate { get; set; }
public string SocialSecurity { get; set; }
public string emailsubscriber { get; set; }
public string active { get; set; }
public int department { get; set; }
public int Title { get; set; }
public int PrimaryEmail { get; set; }
public int PrimaryPhone { get; set; }
public int PrimaryAddress { get; set; }
public string LeadAssignedDate { get; set; }
public int LeadRatingID { get; set; }
public int LeadStatusID { get; set; }
public int AccountType { get; set; }
public int EntityTypeID { get; set; }
public int LeadAssignedTo { get; set; }
public int AccountStatusID { get; set; }
public int LeadSourceID { get; set; }
public string PrimaryContact { get; set; }
public string stateName { get; set; }
}
我在控制器上有一个方法:
[HttpPost]
public void updateDetail(LeadDetail Lead)
{
LeadDetail leadvalue = Lead;
}
我想以正确的方式将完整模型发送到控制器
$.ajax({
url: '/Test/updateDetail',
type: 'POST',
data: {
Lead:'@Model'
},
我在这个ajax发布后的方法updateDetail中得到null如何改进它
答案 0 :(得分:1)
Lead:'@Model'
这是服务器代码,它仅适用于* .cshtml文件,如果查看渲染的html标记,则只能找到对象名称。
试试这个:
var form = $('#your_form');
form.submit(function (e) {
e.preventDefault();
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (data ){
}
});
});
答案 1 :(得分:0)
因为你的实体成员都是简单类型(int - string - decimal),你可以循环遍历表单元素并创建一个json对象。
var rawData = "{";
var fieldCount = $("input , textarea , select ",$(".yourform")).length;
$("input , textarea , select ", $(".yourform")).each(function (index) {
if ($(this).attr("value") == undefined || $(this).attr("name") == undefined) {
return;
}
rawData += '"' + $(this).attr("name") + '" : "' + $(this).attr("value") + '"';
if (index < fieldCount - 1)
rawData += ",";
});
rawData += "}";
var dataToSend = $.parseJSON(rawData);
然后你可以随身携带&#; r $ .ajax:
$.ajax({
url: '/Test/updateDetail',
type: 'POST',
data: dataToSend
});
答案 2 :(得分:0)
$('#form').submit(function () {
$.ajax({
url: url
type: 'POST',
data: $(this).serialize(), // 'this' is your form or use form id
success: function (result) {
//your action after submit
}
});
});