Fai*_*zan 23 javascript c# asp.net-mvc razor angularjs
我正在研究MVC 5项目.当我在我的视图中使用html页面时,它会加载该页面,但是当我使用.cshtml页面时,它不会加载视图.出现空白页面.
$urlRouterProvider
.otherwise('/app/dashboard');
$stateProvider
.state('app', {
abstract: true,
url: '/app',
templateUrl: 'tpl/app.html'
})
.state('app.dashboard', {
url: '/dashboard',
templateUrl: 'tpl/app_dashboard.html'
})
Run Code Online (Sandbox Code Playgroud)
请指导我如何使用cshtml文件或最佳方法.
Yas*_*ser 30
你不能.
您不能在角度路线的模板网址中使用.cshtml文件的路径.你能在浏览器中打开.cshtml文件吗?没有权利 ?这同样适用于此.
解决方法:
.cshtml文件包含服务器端代码,要渲染它,您需要使用控制器和操作.他们将为您呈现.cshtml文件.因此,让控制器操作为您返回该视图,并将URL用于角度路径中的控制器操作.
例如:
state('app.dashboard', {
url: '/dashboard',
templateUrl: '/dashboard/index'
})
Run Code Online (Sandbox Code Playgroud)
同
public class DashboardController : Controller
{
public ActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
ps:尝试过,这对我有用
Zan*_*non 30
为Yasser添加类似的答案,但使用ngRoute:
1)您需要将Controller/Action引用到ASP.NET MVC应用程序,而不是引用部分HTML.
.when('/order', {
templateUrl: '/Order/Create',
controller: 'ngOrderController' // Angular Controller
})
Run Code Online (Sandbox Code Playgroud)
2)您的ASP.NET MVC将返回.cshtml视图:
public class OrderController : Controller
{
public ActionResult Create()
{
var model = new MyModel();
model.Test= "xyz";
return View("MyView", model);
}
}
Run Code Online (Sandbox Code Playgroud)
3)你的MyView.cshtml将混合Razor和Angular.注意:作为Angular应用程序的一部分,请将布局设置为null.
@model MyProject.MyModel
@{
Layout = null;
}
<h1>{{ Test }}</h1> <!-- Angular -->
<h1>Model.Test</h1> <!-- Razor -->
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24131 次 |
| 最近记录: |