Im сражается с angular, чтобы сделать его ng-include частичным представлением cshtml вне ng-view.
вот мой основной взгляд:
<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 вообще не называется. Я мог бы, конечно, включать весь шаблон на главной странице, но позже после входа в систему я хочу заменить этот шаблон зарегистрированным шаблоном пользовательских данных.
Любая идея, как это исправить?