C#Web API路由与Angular路由混合
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#Web API路由与Angular路由混合,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2148字,纯文字阅读大概需要4分钟。
内容图文
![C#Web API路由与Angular路由混合](/upload/InfoBanner/zyjiaocheng/818/591ee4897626435aa49f95c6f93b1b7c.jpg)
是否有可能使MVC应用程序仅使用WEB API形式的路由,但是允许angular使用其routeprovider完成剩余的路由?当我运行我的应用程序时,我得到:
GET http://localhost:8080/Views/Home/Index.html 404 (Not Found)
MVC Route RouteConfig.Cs
// serves plain html
routes.MapRoute(
name: "DefaultViews",
url: "view/{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);
// Home Index page have ng-app
routes.MapRoute(
name: "AngularApp",
url: "{*.}",
defaults: new { controller = "Home", action = "Index" }
);
WebAPIConfig.cs
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
C#Controller(尝试多种方式)
public ActionResult Index()
{
ViewBag.Title = "Home Page";
return View();
}
public ActionResult Test()
{
var result = new FilePathResult("~/Views/Home/test.html", "text/html");
return result;
}
public ActionResult Show()
{
ViewBag.Title = "HomePage";
return View();
}
角度路由:
app.config(function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when("/Tests", { templateUrl: "Views/Home/test.html", controller: "homeCtrl" })
.when("/Shows", { templateUrl: "/Home/Show.cshtml", controller: "homeCtrl" })
.otherwise({ redirectTo: "/" });
});
参考文件结构图片:
编辑:
GitHub工作示例:
https://github.com/allencoded/CSharpAngularRouting
解决方法:
您应该使用MVC 4/5生成角度应用程序的所有视图.您的主页可以在您的路线中初始化角度应用程序,您可以使用mvc url为布局设置为null的视图.
编辑:
创建Web Api项目在RouteConfig.cs中添加它
// serves plane html
routes.MapRoute(
name: "DefaultViews",
url: "view/{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);
// Home Index page have ng-app
routes.MapRoute(
name: "AngularApp",
url: "{*.}",
defaults: new { controller = "Home", action = "Index" }
);
_ViewStart.cshtml
@{
Layout = null;
}
HomeController索引操作页面将是您的角度主页,所有其他可以是您的角度局部视图.
编辑:
你的角度模板网址是错误的.当angular尝试加载模板mvc将返回主页模板(具有ng-app),因此它将再次初始化,并且您只能初始化ng-app一次.
将模板网址更改为/ view / {controller / {action}
.when("/Tests", { templateUrl: "view/Home/test", controller: "homeCtrl" })
内容总结
以上是互联网集市为您收集整理的C#Web API路由与Angular路由混合全部内容,希望文章能够帮你解决C#Web API路由与Angular路由混合所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。