如何禁用AJAX/JSON请求的401响应代码(重定向到登录页面)的标准ASP.NET处理?
对于网页来说没关系,但对于AJAX,我需要获得正确的401错误代码而不是好看的302/200用于登录页面.
更新:来自ASP.NET MVC的PM的Phil Haack有几个解决方案 - http://haacked.com/archive/2011/10/04/prevent-forms-authentication-login-page-redirect-when-you-donrsquot -want.aspx
我创建自己的通用页面基类:
public abstract class ViewPageBase<TModel> : WebViewPage<TModel>
{
public ParamBuilder<TModel> Param { get { return new ParamBuilder<TModel>(Model); } }
}
Run Code Online (Sandbox Code Playgroud)
Web.config文件:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="ViewPageBase">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)
此条目导致以下错误:
INCORRECT_TYPE_PARAMETER_NUMBER
和
表达式树可能不包含动态操作
如何在不使用@inherits每个Razor视图中的关键字的情况下向ASP.NET MVC4注册通用页面基类?