我知道,有几个问题几乎同一个问题。但我无法弄清楚,我的错误在哪里。
首先我的情况: 我将使用ajax加载我的内容并将其推送到网站。
$.ajax({
url: _this.url,
contentType: "application/html; charset=utf-8",
type: "GET",
dataType: "html",
data: {
stamp: Date.now()
},
success: function (result) {
_this.app = $("<div id='" + _this.frameId + "' />")
.addClass("place-top-left page")
.css({
"height": "100%",
"z-index": 4000
})
.append($(result))
.appendTo(document.body);
if (loadedCallback) {
loadedCallback();
}
},
error: function (xhr, status) {
alert(xhr.responseText);
}
});
我的控制器:
public ActionResult Edit(int id)
{
var howToContent = Manager.Get(id);
var howToModel = new HowToModel()
{
MediaID = howToContent.Media.ID,
HowToTitle = howToContent.Title,
Name = howToContent.Name,
BusinessIds = howToContent.BusinessIDs.Select(it => it.ToString()).ToArray()
};
return View(howToModel);
}
我的观点:
@model Hsetu.Help.Web.Areas.System.Models.HowTo.HowToModel
@{
ViewBag.Title = "Leitfaden bearbeiten";
Layout = "~/Areas/System/Views/Shared/AppSite.cshtml";
}
@section ScriptCSS{
@Scripts.Render("~/uploadScripts")
}
@using (Html.BeginForm())
{
<fieldset>
<label>
@Html.EditorFor(m => m.Name)
</label>
<label>
@Html.EditorFor(m => m.HowToTitle)
</label>
<label>
@Html.EditorFor(m => m.BusinessIds)
</label>
</fieldset>
}
Error ill get是: 传递到字典中的模型项的类型为Hsetu.Help.Web.Areas.System.Models.HowTo.HowToModel,但此字典需要System.Web.Mvc.MvcHtmlString类型的模型项 < / p>
因此,如果我调试代码,它将逐步通过Controller和View。我也会得到正确的模特和价值观!
只有来自ajax的success函数的结果是带有此错误消息的json返回。
这适用于相同的代码但未将此howToModel传递到视图中。
另一方面,我发现,如果生病使用这样的ajaxcall它也会起作用吗?!对不起..但WTF是这个ajaxcalls ?????
之间的差异$.ajax({
url: _this.url,
contentType: 'application/html; charset=utf-8',
type: 'GET',
dataType: 'html',
data: {
stamp: Date.now()
}
})
.success(function (result) {
_this.app = $("<div id='" + _this.frameId + "' />")
.addClass("place-top-left page")
.css({
"height": "100%",
"z-index": 4000
})
.append($(result))
.appendTo(document.body);
if (loadedCallback) {
loadedCallback();
}
})
.error(function (xhr, status) {
alert(xhr.responseText);
});
所以我的问题是,我怎样才能让第一个ajaxcall工作?我需要这个语法..所以没有办法解决。也许有人可以解释我ajax之间的区别。没有找到真正必要的理由! 感谢
答案 0 :(得分:0)
ajax调用之间的区别是.error()调用 on 返回的.ajax()调用对象返回deferred object,它是可链接的,允许多个要设置的处理程序,而在error:
函数中传递只能在每次ajax()
调用时执行一次 - 我相信这是一种较旧的语法。
(BTW .error()
已被弃用,您应该使用.fail()代替 - 如果您使用的是此方法)
关于你的MVC(服务器端)错误:这通常是我尝试将一个null属性值传入强类型帮助器时得到的错误消息。检查.Name
,.HowToTitle
和.BusinessIds
的值是否为空。