【问题标题】:Asp.Net Mvc - Switch from Server to AjaxAsp.Net Mvc - 从服务器切换到 Ajax
【发布时间】:2010-02-05 00:27:14
【问题描述】:

如果启用/禁用 javascript,是否有一种干净的方法来管理我的 Asp.Net Mvc 网站以使其正常工作。因为,就目前而言,我必须这样做才能使两者都能正常工作。我认为这不会使代码易于维护和重用......

if (Request.IsAjaxRequest()) 
{                        
    return PartialView("SignUpForm", user);
}
else 
{
    return View("SignUp", user);
}

【问题讨论】:

    标签: c# asp.net-mvc ajax


    【解决方案1】:

    在这个答案中,我概述了一种模式窗口技术,它可以在没有 javascript 的情况下干净地工作;如果您想禁用所有模式和 javascript 功能,则无需更改代码。

    Simple ASP.NET MVC CRUD views opening/closing in JavaScript UI dialog

    我认为对您来说最重要的是自定义 ViewEngine:

    public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
    {
        //you might have to customize this bit
        if (controllerContext.HttpContext.Request.IsAjaxRequest())
            return base.FindView(controllerContext, viewName, "Modal", useCache);
    
        return base.FindView(controllerContext, viewName, "Site", useCache);
    }
    

    如果请求是否来自 ajax,此代码通过加载单独的 MasterPage 来关闭 javascript 和周围的模板。通过在您自己的自定义 ViewEngine 中切换母版页,您可以避免所有控制器中的 if(Ajax) 代码并保持干净。

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 2017-04-12
      • 2011-06-06
      • 2020-12-11
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多