我在控制器(HomeController.cs)中有一些代码,我在视图中从$ .get方法调用。
查看代码
$(document).ready(function() {
$.get("/Home/Toolbar", function(result) {
$("body").prepend(result);
});
});
HomeController.cs
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Toolbar()
{
if (Request.IsAuthenticated && Roles.IsUserInRole("Agents"))
return PartialView("toolbar");
return new EmptyResult();
}
我的问题是在将EmptyViewResult返回给JS之后,代码不再“回发”到控制器了。如果我删除“if”条件并且一致地返回PartialView,一切都正常。
当用户处于“代理”角色时,我想只在DOM中包含“工具栏”部分视图。
答案 0 :(得分:2)
由于您的动作结果看起来不像是在做很多自定义逻辑,为什么不直接在您的site.master(或适当的地方)中包含PartialView?因为它不是真正的动态(至少基于我在控制器中看到的)似乎浪费了打开另一个HTTP连接并通过AJAX抓住它。