我试图使用ajax post将数据发布到控制器上它包含一个模型和字符串,字符串值来到控制器,但模型始终为null。任何人都可以帮忙。附上代码
<script>
function save() {
var st = "Test";
var source = ({
'Name': $('#Name').val(),
'Code': $('#Code').val(),
'Address': $('#Address').val(),
'City': $('#City').val(),
'State': $('#State').val(),
'Country': $('#Country').val(),
'Phone': $('#Phone').val(),
'Fax':$('#Fax').val()
});
$.ajax({
type: "POST",
url:'@Url.Action("Save", "Hospitals")',
data: { 'st': st, 'hospital': source }
});
}
控制器
public ActionResult Save(string st,Hospital hospital)
{
if (ModelState.IsValid)
{
db.Hospitals.Add(hospital);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
var dept = db.Departments.ToList();
ViewBag.department = dept;
}
return View(hospital);
}
答案 0 :(得分:0)
使用
data: { 'st': st, 'hospital': JSON.stringify(source) }
这会将变量转换为动作方法
中的模型类可解释答案 1 :(得分:0)
<强> Jquery的强>
<script>
function save() {
var cval;
var str = "";
$(".chkmaincat:checked").each(function (i) {
cval = $(this).val();
str = str + cval + ",";
});
alert(str);
var source =
{
'Name': $('#Name').val(),
'Code': $('#Code').val(),
'Address': $('#Address').val(),
'City': +$('#City').val(),
'State': $('#State').val(),
'City': $('#City').val(),
'Country': $('#Country').val(),
'Phone': $('#Phone').val(),
'Fax': $('#Fax').val()
}
$.ajax({
type: "POST",
url: '/Hospitals/Save?st='+str,
data: source
});
}
<强>控制器强>
public ActionResult Save(string st,Hospital hospital)
{
if (ModelState.IsValid)
{
db.Hospitals.Add(hospital);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
var dept = db.Departments.ToList();
ViewBag.department = dept;
}
return View(hospital);
}
通过以上操作,我能够获得字符串值以及模态对象。感谢所有帮助。