这是我的按钮onclick的ajax代码。警告框显示值正确。但是当它试图进入控制器时它会给我一个500错误。控制器是ContentPackController。
$(function () {
$('#updateContent').click(function () {
var selectedValue = $('#contentAlias').val();
var value = $('#contentPackDetails').val();
alert(selectedValue + " " + value);
$.ajax({
url: '@Url.Action("UpdateContent", "ContentPack")',
type: "POST",
data: { PropId: selectedValue, UpdateText: 'Looking For An <span class="embellish">Great Deal</span> On Your Next Home?"' },
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}, success: function () {
alert("Updates have been saved");
}
});
});
});
这是应该被称为
的ActionResult public ActionResult UpdateContent(int PropId, string UpdateText)
{
using (var entities = new OpenRoadEntities())
{
var prop = entities.ContentPackDetails.FirstOrDefault(c => c.Id==PropId);
prop.Value = UpdateText;
entities.SaveChanges();
return Json(new EmptyResult(),JsonRequestBehavior.AllowGet);
}
}
这只会让我发疯。对同一控制器的其他调用正常工作。
答案 0 :(得分:1)
由于POST数据中的HTML标记。如果检测到可能不安全的内容,MVC将验证数据并引发错误。要么提出某种在操作中转换的标记,要么将[ValidateInput(false)]
属性添加到您的操作中。