Javascript Ajax加载Mvc内容错误
我知道,有几个问题几乎是同一个问题。但是我不知道我的错误在哪里 所以首先我的情况是: 我将使用ajax加载我的内容并将其推送到站点Javascript Ajax加载Mvc内容错误,javascript,jquery,ajax,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Ajax,Asp.net Mvc,Asp.net Mvc 4,我知道,有几个问题几乎是同一个问题。但是我不知道我的错误在哪里 所以首先我的情况是: 我将使用ajax加载我的内容并将其推送到站点 $.ajax({ url: _this.url, contentType: "application/html; charset=utf-8", type: "GET", dataType: "html", data: { stamp: Date.now() }, success: function (result) { _this.app = $(
$.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);
}
});
我的看法是:
@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>
}
@model Hsetu.Help.Web.Areas.System.Models.HowTo.HowToModel
@{
ViewBag.Title=“Leitfaden bearbeiten”;
Layout=“~/Areas/System/Views/Shared/AppSite.cshtml”;
}
@部分脚本CSS{
@Scripts.Render(“~/uploadScripts”)
}
@使用(Html.BeginForm())
{
@EditorFor(m=>m.Name)
@EditorFor(m=>m.HowToTitle)
@EditorFor(m=>m.BusinessIds)
}
错误是:
传入字典的模型项的类型为Hsetu.Help.Web.Areas.System.Models.HowTo.HowToModel,但此字典需要System.Web.Mvc.MvcHtmlString类型的模型项
因此,如果我调试代码,它将逐步通过控制器和视图。我还将得到正确的模型和值
只有来自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);
});
$.ajax({
url:_this.url,
contentType:'application/html;charset=utf-8',
键入:“GET”,
数据类型:“html”,
数据:{
邮票:Date.now()
}
})
.成功(功能(结果){
_this.app=$(“”)
.addClass(“放置左上页”)
.css({
“高度”:“100%”,
“z指数”:4000
})
.append($(结果))
.附录(文件正文);
如果(loadedCallback){
loadedCallback();
}
})
.错误(功能(xhr,状态){
警报(xhr.responseText);
});
所以我的问题是,如何让第一个ajaxcall工作?我需要这个语法。。所以没有办法了。也许有人能给我解释一下ajax和。找不到真正必要的理由!
谢谢,ajax调用之间的区别在于,.ajax()调用返回的对象上的.error()调用返回一个可链接的,并允许设置多个处理程序,而传入一个
错误:
函数只能在每次ajax()
调用中执行一次--我相信这是一种较旧的语法
(顺便说一句,.error()
已被弃用,如果您使用的是那种方法,则应改用.fail()
关于您的MVC(服务器端)错误:当我尝试将null属性值传递给强类型帮助器时,通常会收到这种错误消息。检查
.Name
、.HowToTitle
和.BusinessIds
的值是否为空。将视图放在视图中是个坏主意。您需要更改控制器以返回局部视图。但是,您没有指定部分名称。您试图通过此调用返回什么?我试图获取视图的html内容。我还尝试返回PartialView()Content()和MvcHtmlString始终相同的错误!ajax调用旨在更新字段或检查信息。或者更新部分。它们不是为整个视图替换而设计的。返回一个视图将包括您的布局页面、引用和许多其他您不需要重复的内容。如果您看到它,在这种情况下,它类似于局部视图的更新!我不会用html/body标签呈现整个页面!这只是一个带表单的div。我已经检查了所有属性。。什么都不是空的!就像我在问题中写的那样,这些价值观和一切似乎对我都很好!
$.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);
});