3

Я использую asp.net MVC протоколирование 5 приложений со следующим Loging действием в AccountController:Перенаправление углового маршрута после входа с ASP.NET MVC 5

// POST: /Account/Login 
    [HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
    { 

      ## not working, just a trial 
     ##returnUrl = "Dashboard#!/requests"; 

     if (!ModelState.IsValid) 
     { 
      return View(model); 
     } 

     // This doesn't count login failures towards account lockout 
     // To enable password failures to trigger account lockout, change >to shouldLockout: true 

     var result = await > >SignInManager.PasswordSignInAsync(model.UserName, model.Password, 

model.RememberMe, shouldLockout: ложь) ;

 switch (result) 
     { 
      case SignInStatus.Success: 
       return RedirectToLocal(returnUrl); 
      case SignInStatus.LockedOut: 
       return View("Lockout"); 
      case SignInStatus.RequiresVerification: 
       return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); 
      case SignInStatus.Failure: 
      default: 
       ModelState.AddModelError("", "Invalid login attempt."); 
       return View(model); 
     } 
    } 

и с помощью этой формы:

<section id="loginForm"> 
      @using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 
      { 
       @Html.AntiForgeryToken() 
       <h4>Use a local account to log in.</h4> 
       <hr /> 
       @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
       <div class="form-group"> 
        @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" }) 
        <div class="col-md-10"> 
         @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" }) 
         @Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" }) 
        </div> 
       </div> 
       <div class="form-group"> 
        @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" }) 
        <div class="col-md-10"> 
         @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) 
         @Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" }) 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-offset-2 col-md-10"> 
         <div class="checkbox"> 
          @Html.CheckBoxFor(m => m.RememberMe) 
          @Html.LabelFor(m => m.RememberMe) 
         </div> 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-offset-2 col-md-10"> 
         <input type="submit" value="Log in" class="btn btn-default" /> 
        </div> 
       </div> 
       @*<p> 
        @Html.ActionLink("Register as a new user", "Register") 
       </p>*@ 
       @* Enable this once you have account confirmation enabled for password reset functionality 
        <p> 
         @Html.ActionLink("Forgot your password?", "ForgotPassword") 
        </p>*@ 
      } 
     </section> 

После входа пользователя в систему, я хочу, чтобы пользователь перенаправлять URL "! Dashboard #/запросы" где приборная панель ASP.NET MVC 5 контроллер и/запросы - это угловой маршрут с использованием HTML5 и! Префикс:

$locationProvider.html5Mode(false).hashPrefix('!'); // This is for Hashbang Mode 

app.config (функция ($ routeProvider, $ locationProvider) { $ routeProvider

 .when('/requests', { 
      templateUrl: '/Template/Request/Index.html', 
      controller: 'requestsController' 

     }) 
     .when('/request/:wf/:requestId', { 
      templateUrl: function(params) { 
       return '/Template/Request/' + params.wf + '/Open.html'; 
      }, 
      controller: 'requestsController' 
     }); 

    $locationProvider.html5Mode(false).hashPrefix('!'); // This is for Hashbang Mode 


}); 

Как перенаправить пользователя в URL в сочетании с ASP.NET MVC 5 и угловой?

+0

Та же проблема здесь ... –

+0

Да, то же самое здесь ... Только разница в том, что я использую UI-маршрутизатор .. , – Mastenka

ответ

0

Я думаю, что нет способа ...

После поиска и поиска ... Я думаю, что невозможно (легко), последняя часть url не поступает на сервер.

Я думаю, что решение является использование html5Mode(true) в этой статье показано, как: http://www.jlum.ws/post/2014/10/10/handling-routes-between-an-angularjs-application-and-aspnet-mvc-application