none
关于 mvc3 新引擎的问题 RRS feed

  • 问题

  • 现在我们对布局页面编程 (Layout) 在布局页面上 有全局的登录功能 我们可以定义 form 的提交action 和 控制器 但是 如果验证不通过 应该如何让其不跳转 而保持在原来的页面上?如果针对每个页面都要写view(“原视图”)那么全局登录就没有意义了. 我在观察微软的例子时发现 微软的视图在验证没有通过的时候根本不传值给后台 但是我用同样的写法 却会走进控制器中 这是怎么回事? 还有 @if (Request.IsAuthenticated) { <text>Welcome @User.Identity.Name! [ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text> } else { @:[ @Html.ActionLink("Log On", "LogOn", "Account") ] } 这的部分页 这些代码代表什么意思? 以上就是在下的全部疑问 目前 希望各位慷慨相助
    不求第一 但求第二
    2011年4月26日 1:57

答案

  • 首先,不进入后台是因为通过ajax或者是客户端验证来完成操作

    其次,即使进入后台,验证不通过的话 你可以return view回去,而不进行跳转

     

    关于你发的代码,这个partial是一个部分视图,相当于一个自定义控件,具体的作用为

    判断是否验证通过,如果是,则显示 <text>Welcome @User.Identity.Name! [ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>

    其中@是razer语法的标识符。@User.Identity.Name相当于 <%= User.Identity.Name %> @Html.ActionLink 同理,同时Html.这个是html helper

     

    如果不通过 则显示@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]这个超链接是登录

    2011年4月27日 5:03
  • 你好,可以尝试从header中获取referer,看是由哪里转过来的。


    A marked answer is appreciated.
    2011年4月29日 9:44
    版主
  • 实在是麻烦您了!感谢
    不求第一 但求第二
    2011年5月3日 7:35

全部回复

  • 首先,不进入后台是因为通过ajax或者是客户端验证来完成操作

    其次,即使进入后台,验证不通过的话 你可以return view回去,而不进行跳转

     

    关于你发的代码,这个partial是一个部分视图,相当于一个自定义控件,具体的作用为

    判断是否验证通过,如果是,则显示 <text>Welcome @User.Identity.Name! [ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>

    其中@是razer语法的标识符。@User.Identity.Name相当于 <%= User.Identity.Name %> @Html.ActionLink 同理,同时Html.这个是html helper

     

    如果不通过 则显示@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]这个超链接是登录

    2011年4月27日 5:03
  • 那如果我用的是 新视图的 layout 视图 在上面写的全局的登录或者注册. 但是若不用js 而是直接到控制器去验证 验证不通过应该跳到上面地方呢?应该不可能直接调回layout视图中吧...如果是从哪里跳进来从哪里跳回去 那么如何在控制器中获取跳进来的路径呢?
    不求第一 但求第二
    2011年4月28日 0:47
  • 你好,可以尝试从header中获取referer,看是由哪里转过来的。


    A marked answer is appreciated.
    2011年4月29日 9:44
    版主
  • 实在是麻烦您了!感谢
    不求第一 但求第二
    2011年5月3日 7:35