一尘不染

Angular ng-include cshtml页面

angularjs

我正在与angular进行斗争,以使其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>

我使用mvc在调用url时返回特定的局部视图,如下所示:

   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方法。我当然可以在母版页上包括整个模板,但是稍后登录后,我想用登录的用户数据模板替换该模板。

任何想法如何解决这个问题?


阅读 190

收藏
2020-07-04

共1个答案

一尘不染

ng-include计算一个表达式,请确保如果要直接加载路径,请使用两组引号。

<div ng-include="'Home/Template/login'"></div>
2020-07-04