做了很多搜索,我不确定为什么这不起作用。我有一个jquery对话框,我在其中显示局部视图。当我将数据传回控制器时,它会显示一个空白模型。
控制器:
public ActionResult AddIngredient()
{
return PartialView();
}
public JsonResult AddIngredientJson(Ingredient model)
{
Ingredient newIngredient = model;
return Json(null);
}
部分视图:
<form id="AddIngredientForm" class="AddIngredientForm">
<div class="logincontent">
<label>Name:</label>
@Html.TextBoxFor(x => x.Name, new { @class = "logintextbox" })
</div>
<div class="logincontent">
<label>Category:</label>
@Html.EnumDropDownListFor(x => x.Category, new { @class = "logintextbox" })
</div>
</form>
脚本:
$(document).ready(function () {
function addIngredient() {
$.ajax({
url: "AddIngredientJson",
Data: $('#AddIngredientForm').serialize(),
Type: "POST"
});
}
$(function () {
$('#modalDialog').dialog({
autoOpen: false,
width: 400,
resizable: false,
modal: true,
buttons: {
"Save": function () {
addIngredient();
},
Cancel: function () {
$(this).dialog("close");
}
}
});
$('#openDialog').click(function () {
$('#modalDialog').load("@Url.Action("AddIngredient")", function () {
$(this).dialog('open');
});
return false;
});
});
});
我已尝试将数据硬编码到脚本中,但也无法通过。
感谢您的帮助。
答案 0 :(得分:1)
javascript区分大小写,因此在对象属性上使用wordcase时需要更加小心
$.ajax({
url: "AddIngredientJson",
Data: $('#AddIngredientForm').serialize(),
Type: "POST"
});
应该是
$.ajax({
url: "AddIngredientJson",
data: $('#AddIngredientForm').serialize(),
type: "POST"
});
在没有成功和错误处理程序的情况下使用ajax也不是一个好主意。您的请求可能会失败,用户永远不会知道