2010-02-05 67 views
2

有没有一种干净的方式来管理我的Asp.Net Mvc网站,以便在javascript启用/禁用的情况下正常工作。因为,现在我必须这样做才能使两者都能正常工作。我认为这不会使代码易于维护和可重用......Asp.Net Mvc - 从服务器切换到Ajax

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

回答

0

在这个答案,我提出了一个模态窗口技术,清洁工作没有JavaScript的;如果您想禁用所有模式和JavaScript功能,则不会更改代码。

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

,我认为是对你最重要的位是自定义视图引擎:

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); 
} 

此代码关闭JavaScript和通过加载一个独立的母版如果请求是从周围的模板阿贾克斯或不。通过在您自己的自定义ViewEngine中切换主页面,您可以避免所有控制器中的if(Ajax)代码并保持事物清洁。

相关问题