我的默认操作代码:
public ViewResult Act(int? id)
{
if (id == null)
ViewData["p"] = GetDefaultView();
else
ViewData["p"] = GetEditView((int)id);
return View("Index");
}
我的索引视图代码:
<!DOCTYPE html><html><head></head><body>
<div id="content">@Html.Raw(ViewData["p"])</div></body></html>
如何使用字符串代替ViewData?我如何才能通过$ .ajax更新#content?
答案 0 :(得分:1)
如果要返回字符串,可以更改控制器以返回ContentResult
。
public ContentResult Act(int? id)
{
string html = "";
if (id == null)
html = GetDefaultView();
else
html = GetEditView((int)id);
var content = new ContentResult();
content.Content = html;
return content;
}
答案 1 :(得分:1)
在能够使用$ .ajax函数之前,首先需要渲染一个包含jquery.js脚本的视图:
<!DOCTYPE html>
@{ Layout = null; }
<html>
<head>
</head>
<body>
<div id="content"></div>
<!-- TODO: Adjust your proper jquery version here: -->
<script type="text/javascript" src="~/scripts/jquery.js"></script>
<script type="text/javascript">
$.ajax({
url: '@Url.Action("act")',
data: { id: 123 },
success: function(result) {
$('#content').html(result);
}
});
</script>
</body>
</html>
然后你应该调整你的Act控制器动作,以便它返回一些局部视图或内容结果:
public ActionResult Act(int? id)
{
if (id == null)
{
return Content("<div>id was null</div>");
}
return Content("<div>id value is " + id.Value.ToString() + "</div>");
}