我用角度战斗,使其包含在ng-view之外的部分cshtml视图.
这是我的主要观点:
<div class="container"> <div class="header"> <div class="loginView"> <div ng-include="Home/Template/login"></div> </div> </div> </div> <div class="container"> <div ng-view></div> </div>
这里是我的部分Login.cshtml:
<form name="login" ng-controller="LoginCtrl" class="form-inline"> <div class="form-group"><input type="text" name="loginName" class="form-control input-sm" placeholder="Brugernavn" oninvalid="this.setCustomValidity('Indtast brugernavn')" ng-model="UserData.LoginName" ng-required="true"></div> <div class="form-group"><input type="text" name="password" class="form-control input-sm" placeholder="Kodeord" oninvalid="this.setCustomValidity('Indtast kodeord')" ng-model="UserData.Password" ng-required="true"></div> <div class="form-group"> <button class="btn btn-primary btn-sm" ng-click="Login()" ng-disabled="login.password.$error.required || login.loginName.$error.required">Login</button> </div> </form>
im使用mvc返回特定部分视图对网址的调用,如下所示:
public ActionResult Template(string id) { switch (id.ToLower()) { case "login": return PartialView("~/Views/Account/Partials/Login.cshtml"); case "register": return PartialView("~/Views/Account/Partials/Register.cshtml"); case "main": return PartialView("~/Views/Main/MainPage.cshtml"); default: throw new Exception("template not known"); } }
基本上我会相信ng-include应该调用url,它将返回到页面上将被粘贴的html.但是这不是什么发生,Template方法根本没有被调用.我可以在主页上包含整个模板,但是在登录后,我想用登录的用户数据模板替换此模板.
任何想法如何解决这个问题?
解决方法
ng-include会计算一个表达式,确保您正在寻找直接加载路径,使用两组引号.
<div ng-include="'Home/Template/login'"></div>