【发布时间】:2017-03-13 12:51:16
【问题描述】:
我有 ajax 可以返回具有强类型的部分视图 我想在成功中获得模型的价值。 可能吗? 代码返回:
return View("Test", Model);
在 ajax 中: 我想在数据变量中获取模型
success: function (data) {
data.
}
【问题讨论】:
标签: ajax asp.net-mvc
我有 ajax 可以返回具有强类型的部分视图 我想在成功中获得模型的价值。 可能吗? 代码返回:
return View("Test", Model);
在 ajax 中: 我想在数据变量中获取模型
success: function (data) {
data.
}
【问题讨论】:
标签: ajax asp.net-mvc
您的部分视图需要返回 JSON 数据,以便您能够访问这样的数据。
在你的控制器中(我假设这是一个 HTTPPost 调用):
return Json(new { id = 1, name = "Test" });
在你的 JS Ajax 调用中:
success: function(data) {
alert(data.name); //alerts 'Test'
}
更新 好的,如果你想返回部分视图和模型,你可以返回你已经存在的视图,然后将模型转换为 JSON 字符串,以便在视图中的 JS 中访问和使用?这是一个粗略的例子......
在控制器中:
using System.Web.Script.Serialization;
...
var jsonstring = new JavaScriptSerializer().Serialize(Model);
...
ViewBag.JsonString = jsonString;
然后在局部视图中:
@{
var jsonString = ViewBag.JsonString;
}
<script>
var data = JSON.parse("@jsonString");
alert(data.name); //alerts 'Test'
</script>
【讨论】:
@{ var jsonString = ViewBag.JsonString; }(<script> 标签之前)
不,因为您需要从控制器操作中返回 JsonResult,如下所示:
return Json(new {response = Model });
现在ajax成功了,你可以从返回的json对象中访问结果:
success: function (data) {
console.log(data);
}
【讨论】:
试试这是 Ajax 表单
OnSuccess = "ShowMessage()"
脚本是
<script>
function ShowMessage() {
document.getElementById('info').value='YOUR_MESSAGE';
setTimeout(function () {
$("#info").hide();
}, 3000);
}
<script>
你的Html标签应该是这样的
<div id="info"></div>
【讨论】: