使用$ .ajax获取部分视图
问题描述:
我正在使用ASP.NET MVC 3构建应用程序,但在尝试获取部分视图时遇到问题;这里是我的代码
的观点:
@{while (Model.Read())
{
<ul class="tabs">
<li id="general" class="active">Informations générals</li>
<li id="contact">Contacts</li>
</ul>
<div id="contentDetail">
<div><b>Description :</b> @Model["Description"]</div>
<div><b>Activity :</b> @Model["Activity"]</div>
</div>
<script type="text/javascript">
$("#contact").click(function() {
$.ajax({
url: '@Url.Content("~/Company/Contacts/")',
type: 'get',
data: JSON.stringify('@Model["Id"]'),
datatype: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
$('#contentDetail').replaceWith(data);
},
error: function (request, status, err) {
alert(status);
alert(err);
}
});
});
</script>
}
}
控制器:
public ActionResult Contacts(int id)
{
return PartialView("_Contacts", getContactDetails(id));
}
“_Contacts” 是我的局部视图,它是强类型。
首页我是清楚的,感谢^^
答
以下是错误的:
data: JSON.stringify(@(Html.Raw(Json.Encode(new { id = Model["Id"] }))))
或:
data: JSON.stringify({ id: "@Model["Id"]" })
data: JSON.stringify('@Model["Id"]')
与真正的JSON对象进行更换
其中当r endered在最终的标记看起来像这样:
data: JSON.stringify({ id: "123" })
+0
非常感谢,它工作^^ 'data:JSON.stringify({id:'@Model [“Id”]'})'' – SidAhmed 2012-01-17 15:22:37
答
你就应该能够返回一个视图中不partialview并尝试这个js
var model = { id:"@Model["Id"]" };
$.post("~/Company/Contacts/,
model,
function (data) {
$('#contentDetail').replaceWith(data);
});
这里是一个博客帖子上它与示例代码http://bob-the-janitor.blogspot.com/2011/11/more-ajax-with-mvc-using-partial-views.html
什么是“问题”?您是否监视了HTTP请求和响应,以查看您发送的数据以及返回的内容?你知道HTTP响应代码是什么吗?你是否检查过服务器上的错误日志,看看你的问题在哪里? – 2012-01-17 15:22:16