asp.net-mvc – 使用cshtml页面的angularjs不是带有web api 2的h
我有asp. net mvc4项目. Angularjs是整合的.
我已经按照以前的要求构建了HTML页面和WEB API 2. 现在由于某种原因,我必须使用CSHTML页面.以前我只有web api项目模板所以我不能用cshtml页面,因为只有MVC控制器可以返回部分页面(cshtml),但我只使用web apis … 所以改变了整个项目模板,所以现在我可以拥有mvc控制器…… 总之,目前我已经建立了web apis和html页面的mvc4项目….. 我只是想使用CSHTML页面而不是使用HTML页面休息的东西应该是它们…… 可能吗? 我可能听起来很傻但现在需要它.帮助将不胜感激…… 仅限Web apis,cshtml页面和angularjs.不是web apis,html pages和angularjs. 如果我用cshtml替换html页面,角度路由会受到什么影响? 解决方法
嗯,这就是我使用它的方式.
有像这样的index.cshtml @using System.Web.Optimization @inherits System.Web.Mvc.WebViewPage @{ Layout = null; }<!DOCTYPE html> <html data-ng-app="MyProject"> <head> <title data-ng-controller="TitleCtrl" data-ng-bind="Title">My Project</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="cache-control" content="max-age=0" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="expires" content="0" /> <meta http-equiv="expires" content="Tue,01 Jan 1980 1:00:00 GMT" /> <meta http-equiv="pragma" content="no-cache" /> @Styles.Render("~/Content/min/css") </head> <body class="body" id="body"> <div class="body" data-ui-view="body"></div> @Scripts.Render("~/js/angular") @Scripts.Render("~/js/MyProject") </body> </html> 注意:使用角度UI-Router,这就是ui-view所在的原因 但仍然必须有HomeController: public class HomeController : Controller { public ActionResult Index() { // below I do some tricks to make app running on // http://mydomain/app as well as on // http://mydomain/app/ (see the / at the end) var root = VirtualPathUtility.ToAbsolute("~/"); var applicationPath = Request.ApplicationPath; var path = Request.Path; var hasTraillingSlash = root.Equals(applicationPath,StringComparison.InvariantCultureIgnoreCase) || !applicationPath.Equals(path,StringComparison.InvariantCultureIgnoreCase); if (!hasTraillingSlash) { return Redirect(root + "#"); } // my view is not in Views,but in the root of a web project return View("~/Index.cshtml"); } } 所以,这样我可以使用Bundle配置(javascript,css)的功能……同时在http:// mydomain / app或http:// mydomain / app /启动角度.检查类似here 同样在global.asax中,我们应该配置ASP.NET MVC: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("fonts*.woff"); routes.MapRoute( name: "Default",url: "{controller}/{action}/{id}",defaults: new {controller = "Home",action = "Index",id =UrlParameter.Optional} ); } 而web API应该是: const string IdPattern = @"d+|[A-Za-z]{1,2}"; public static void SetRouting(HttpConfiguration config) { // some custom routes ... // and a default one config.Routes.MapHttpRoute( name: "DefaultApi",routeTemplate: "api/{controller}/{id}",constraints: new { id = IdPattern },defaults: new { id = RouteParameter.Optional } ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在向下滚动页面后,对于webkit浏览器,AutoComple
- 在asp.net MS图表控件上显示工具提示
- 剃刀 – Telerik Kendo MVC TextBox多线模式
- 在ASP.NET Web窗体中收集输入值的推荐方法是什么
- asp.net-mvc – ASP.NET MVC:正确的地方为部分视图?
- 将ASP.NET捆绑设置为不删除第三方版权
- 在asp.net中制作某些页面的最佳方法是什么?需要登录?
- asp.net-mvc – 如何在asp.net mvc中提交下拉列表
- 在Asp.net中运行外部可执行文件的内存限制
- asp.net – 如何使用Inno Setup脚本创建IIS应用程序和应用程