$ .get的EmptyResult jQuery回调问题

时间:2010-01-18 15:48:08

标签: jquery asp.net asp.net-mvc

我在控制器(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中包含“工具栏”部分视图。

1 个答案:

答案 0 :(得分:2)

由于您的动作结果看起来不像是在做很多自定义逻辑,为什么不直接在您的site.master(或适当的地方)中包含PartialView?因为它不是真正的动态(至少基于我在控制器中看到的)似乎浪费了打开另一个HTTP连接并通过AJAX抓住它。