我的MVC Web应用程序为两种类型的用户提供服务.
另外,
当用户访问应用程序时,如果他们未登录,则应用程序应以不同的方式做出反应.
我习惯使用WCF REST服务,我可以在这里引发这样的异常:
throw new WebProtocolException(System.Net.HttpStatusCode.Unauthorized, exc.Message, exc);
Run Code Online (Sandbox Code Playgroud)
并收到401消息.我把statusCode这样的问题用在MVC中的相同方法的问题:
HttpContext.Response.StatusCode = (Int32)HttpStatusCode.Unauthorized
Run Code Online (Sandbox Code Playgroud)
它总是重定向到LogIn页面.
我怎样才能做到这一点?
我已经尝试重写AuthorizeAttribute并处理该OnAuthorization函数,但是一旦我将其设置statusCode为401,它就会被重定向到LogIn页面.
我想做这个简单的事情
<%= Html.HiddenFor(model => model.Id)%>
Run Code Online (Sandbox Code Playgroud)
这个模型是
[HiddenInput(DisplayValue=true)]
public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
但我总是得到这个渲染
<input type="hidden" value="0" name="UserInfo.Id" id="UserInfo_Id">
Run Code Online (Sandbox Code Playgroud)
我检查并且ID不是0 ..?!
这里需要一些解释......
编辑
问题似乎是下面提到的帖子.这很有效
<input type="hidden" value="<%= Html.AttributeEncode(Model.Id) %>" id="<%= Html.IdFor(model=>model.Id)%>" name="<%= Html.NameFor(model=>model.Id)%>" />
Run Code Online (Sandbox Code Playgroud)
感谢Manaf