如何在Angular 2中使用MVC视图(* .cshtml)作为模板?

时间:2015-11-10 16:32:56

标签: angular

大家好我想知道如何在Angular 2中使用MVC视图而不是模板。 在Angular 2中我使用的是RouteProvider:

$routeProvider.
when('/BusinessLookup', {
    templateUrl: 'Home/BusinessLookup',
    controller: 'BusinessLookupController'
});

我怎样才能使用$Scope来处理元素值。

4 个答案:

答案 0 :(得分:2)

你所要求的是Isomorphic Javascript。基本上,您无法在客户端上运行Razor,但您可以在服务器上运行javascript。

您在nodejs范围内寻找的内容可能更多。它可能通过改变架构来完成,但这意味着要改变问题。

答案 1 :(得分:2)

您可以直接在templateURL中调用cshtml视图

import {Component, OnInit} from "angular2/core";

@Component({
    selector: "mvc",
    templateUrl: "/partial/message"
})
export class MvcComponent implements OnInit {
    message: string;

    constructor() { }

    ngOnInit() {
        this.message = "The '/partial/message' path was used as the Angular2 'templateUrl'. However, this routes through the 'PartialController' hitting the 'Message' action and is served after standard MVC pre-processing. Likewise, there is a 'message' property bound to the <blockqoute> element."
    }
}

Partial /Message.cshtml

@{
    ViewBag.Title = "MVC";
}
<mvc>
    <blockquote *ngIf="message">{{message}}</blockquote>
</mvc>

答案 2 :(得分:1)

当然,您可以将cshtml渲染为模板!

@Component({
    moduleId: module.id,
    templateUrl: "/YourController/YourAction" 
})

当需要模板时,Angular会向'templateUrl'发出http请求。

如果该url被解析为MVC Action,那么IIS调用传统的MVC管道,它可以用Razor解析cshtml,最后返回对于angular有效的html

答案 3 :(得分:0)

是的,你可以这样做。

import { Component } from '@angular/core';
@Component({
    selector: 'my-app',
    templateUrl: '/Student/Register',
})
export class AppComponent  { name = 'first Angular demo'; }

在视图中创建目录学生添加文件Register.cshtml

Hello {{name}}