使用Angular2加载mvc部分问题

时间:2016-09-03 12:08:06

标签: asp.net-mvc angular

我正在尝试使用基于此excellent tutorial的MVC和Angular2.rc6创建一个小应用。

我坚持使用部分视图作为templateUrl。 api.flight

@Component({
  selector: "mvc",
  templateUrl: "/partial/flights" //C# mvc Partial flights.cshtml
})

当我的应用程序启动时,我看到了突破点,应用程序加载Home / Index.cshtml和我的Partial / flights.cshtml

当我点击链接加载航班时,我得到了这个例外:

  

EXCEPTION:未捕获(承诺):错误:错误   / partial / flights:1:54引起:超出最大调用堆栈大小

但是如果我改变我的API.flight使用:template instance templateUrl。有用。 api.flight

@Component({
  selector: "mvc",
  template: "<h1>Works Well</h1>"
})


public class PartialController : Controller
  {
    public IActionResult Flights()
    {
      return PartialView();
    }
    public IActionResult Message() => PartialView();

  }

我不知道我的MVC路线中是否遗漏了某些内容,或者我是否在angular2上犯了错误。

2 个答案:

答案 0 :(得分:1)

您可以将.cshtml与angular2组件一起使用。

像这样使用模板网址 -

templateUrl: "partial/flights"

partial是您的控制器名称,flights将是您的操作名称

在MVC Controller中,您只需返回部分视图 -

public IActionResult flights() => PartialView();

注意:您的操作名称为 s ,部分视图为flight.cshtml。尝试保持相同的命名约定。

看看这是否有帮助。

答案 1 :(得分:-1)

因为templateUrl不正确而引发错误,templateUrl应该是有效的组件相对网址,如下所示:

@Component({
  selector: "mvc",
  templateUrl: "/partial/flights.html"
})