ASP.NET MVC

如何在 ASP.NET MVC 中集成 AngularJS(1)

帅比萌擦擦* 提交于 2020-02-28 13:34:53
介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术。例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务。另外,还有最新的数据库技术、最新的设计模式和技术。 当选择最新的软件技术时,有几个因素在起作用,其中包括如何将这些技术整合起来。过去两年中,我最喜欢的一项技术就是设计单页面应用(SPA)的 AngularJS。作为一个微软stack开发者,我也是使用 ASP.NET MVC 平台实现 MVC 设计模式和并进行研究的粉丝,包括它的捆绑和压缩功能以及实现其对 RESTful 服务的 Web API 控制器。 为了兼得两者,本文介绍了在 ASP.NET MVC 中集成 AngularJS 的两全其美的方案。 由于本文篇幅较长,故会分为3篇,分别进行介绍。 概述 本文中示例的 Web 应用程序将有三个目标: 在前端页面中实现 AngularJS 和 JavaScript AngularJS 控制器 使用微软的 ASP.NET MVC 平台来建立、引导并捆绑一个应用 根据功能模型的需求,动态的加载 AngularJS 的控制器和服务 本文的示例应用程序将包含三个主要文件夹:关于联系和索引的主文件夹、允许你创建,更新和查询客户的客户文件夹、允许你创建,更新和查询产品的产品文件夹。 除了使用 AngularJS 和 ASP.NET

MVC2,MVC3,MVC4和MVC5有什么不同?

僤鯓⒐⒋嵵緔 提交于 2020-02-28 07:56:38
MVC2,MVC3,MVC4和MVC5的不同: 1、查看引擎: 视图引擎负责将HTML代码从视图呈现到浏览器。 MVC 2仅使用Web窗体视图引擎( .aspx)作为默认视图引擎。 MVC3使用剃刀视图引擎( .c#和的cshtml。vbhtml (用于Visual Basic )和Web窗体视图引擎( .阿斯佩克斯)。 MVC4还使用剃刀视图引擎作为默认视图引擎,具有一些新功能,如条件属性和“波形斜线”。 2、图表、网络网格、加密、网络映像、网络邮件控制: 所有这些在MVC2中都不可用。 所有这些都在MVC3和MVC4中提供。 3、合成语法: Web窗体视图引擎语法: < % = HTML代码%>在MVC2中。 (剃刀语法)剃刀视图引擎语法: @MVC3中的Html代码。 MVC4具有相同的剃刀视图引擎语法,但添加了新功能,如条件属性和“波形斜线”,即URL解析。 4、可用于在视图和控制器之间共享数据的对象: 模板数据、视图数据在MVC2中可用。 MVC3中提供了临时数据、视图数据、视图包。 MVC4中提供了临时数据、视图数据、视图包。 >TempData用于当前和后续请求,即当您知道要重定向的下一个视图时。 >在ViewData中,可以通过字符串作为键访问对象字典。 >在c#4.0中添加了ViewBag,它使用允许动态添加对象属性的动态功能。我们可以说ViewBag =

在ASP.NET MVC中编译视图

拜拜、爱过 提交于 2020-02-28 07:56:16
我想要一个msbuild任务来编译视图,这样我就可以看到编译时是否存在编译错误...编译时。 有任何想法吗? #1楼 我坦率地推荐 RazorGenerator nuget包。 这样你的视图 .designer.cs 在你保存它们时生成一个 .designer.cs 文件,除了为你的视图获取编译时错误之外,它们还被预编译到程序集中(=更快的预热),Resharper也提供了一些额外的帮助。 要使用它, 请 在ASP.NET MVC项目中包含 RazorGenerator nuget包,并在 Tools→Extensions and Updates 下的项目下安装“ Razor Generator ”扩展。 我们使用这个,并且使用这种方法的每次编译的开销要少得多。 除此之外,我可能会推荐 RedGate的.NET Demon, 它可以进一步减少编译时的影响。 希望这可以帮助。 #2楼 使用Visual Studio的 生产力电动工具 ( 免费 )扩展 有所帮助 。 具体来说, Solution Error Visualizer 功能。 有了它,解决方案资源管理器(在发现错误的源文件中)可视地标记了编译错误。 但是,出于某种原因,此功能不能与代码中其他任何位置的其他错误一起使用。 使用MVC视图时,任何编译时错误仍会在各自的.cs文件中以红色加下划线

解决MSB3247

百般思念 提交于 2020-02-28 07:41:25
在使用msbuild进行编译时,.NET 3.5解决方案最终出现此警告。 有时NDepend可能有所帮助,但在这种情况下,它没有提供任何进一步的细节。 像Bob一样, 我最终不得不在ILDASM中打开每个程序集,直到找到引用旧版依赖程序集的程序集。 我确实尝试使用VS 2010 Beta 2中的MSBUILD(因为Connect文章表明这​​已经在下一版本的CLR中得到修复)但是它没有提供任何更多细节(可能在Beta 2后修复) 有更好的(更自动化的)方法吗? #1楼 为默认的ASP.NET MVC 4 beta生成此警告, 请参见此处 在,可以通过手动编辑项目的.csproj文件来消除任何强制转换此警告。 修改........:参考包含=“System.Net.Http” 阅读......:参考包含=“System.Net.Http,Version = 4.0.0.0” #2楼 如前所述 在这里 ,你需要删除未使用的引用,并警告会去。 #3楼 将“MSBuild项目构建输出详细程度”更改为“详细”或更高版本。 为此,请按照下列步骤操作: 打开“选项”对话框(“ 工具” - >“选项...” )。 在左侧树中,选择“ 项目和解决方案” 节点,然后选择“ 生成并运行” 。 注意:如果此节点未显示,请确保选中“ 显示所有设置 ”对话框底部的复选框。 在出现的工具/选项页面中

ASP.NET MVC控制器可以返回图像吗?

时间秒杀一切 提交于 2020-02-28 03:31:12
我可以创建一个仅返回图像资产的控制器吗? 每当请求以下URL时,我都希望通过控制器路由此逻辑: www.mywebsite.com/resource/image/topbanner 控制器将查找 topbanner.png 并将该图像直接发送回客户端。 我看过这样的示例,其中您必须创建一个View-我不想使用View。 我想只用Controller来完成所有操作。 这可能吗? #1楼 使用基本控制器的File方法。 public ActionResult Image(string id) { var dir = Server.MapPath("/Images"); var path = Path.Combine(dir, id + ".jpg"); //validate the path for security or use other means to generate the path. return base.File(path, "image/jpeg"); } 需要注意的是,这似乎相当有效。 我做了一个测试,通过控制器( http://localhost/MyController/Image/MyImage )和直接URL( http://localhost/Images/MyImage.jpg )请求图像,结果是: MVC: 每张照片7.6毫秒 直接: 每张照片6

MVC和WebForm区别

ぐ巨炮叔叔 提交于 2020-02-27 19:22:45
WebForm的理解 1、 WebForm概念 ASP.NETWebform提供了一个类似于Winform的事件响应GUI模型(event-drivenGUI),隐藏了HTTP、HTML、JavaScript等细节,将用户界面构建成一个服务器端的树结构控件(Control),每个控件通过ViewState保持自己的状态,并自动把客户端的js事件和服务器端的事件联系起来。这种做法使得开发WinForm和WebForm程序具有相近的开发体验,填平WinForm开发(有状态、面向对象的)和WebForm开发(无状态、面向HTML的)之间的鸿沟。 2、WebForm 请求流程 比如访问 http://www.qidian.com/Default.aspx 1、Http请求(物理地址:Default.aspx) ①发送请求: 浏览器向服务器发送请求报文,此时由IIS虚拟目录接收。(通过配置过IIS,把网站挂载在服务器上,通过访问虚拟目录的方式访问网站的。) ②转交请求: 服务器端的IIS软件接收到请求后,把请求交给.NET FrameWork进行处理。 ③创建页面类对象:.NET FrameWork根据请求的地址index.aspx,会创建对应的index_aspx类的对象(页面对象)。 IIS的内部机制: 实现一个IHttphandler的接口

如何将ASP.NET MVC视图呈现为字符串?

最后都变了- 提交于 2020-02-27 08:42:09
我想输出两个不同的视图(一个作为将作为电子邮件发送的字符串),另一个显示给用户。 在ASP.NET MVC beta中可能吗? 我尝试了多个示例: 1. 在ASP.NET MVC Beta中将RenderPartial转换为字符串 如果使用此示例,则会收到“发送HTTP标头后无法重定向”。 2. MVC框架:捕获视图的输出 如果使用此方法,则似乎无法执行redirectToAction,因为它尝试呈现可能不存在的视图。 如果我确实返回视图,则它完全被弄乱了,看起来根本不正确。 是否有人对我遇到的这些问题有任何想法/解决方案,或者对更好的问题有任何建议? 非常感谢! 下面是一个例子。 我想做的是创建 GetViewForEmail方法 : public ActionResult OrderResult(string ref) { //Get the order Order order = OrderService.GetOrder(ref); //The email helper would do the meat and veg by getting the view as a string //Pass the control name (OrderResultEmail) and the model (order) string emailView =

如何为网站添加浏览器选项卡图标(favicon)?

时光怂恿深爱的人放手 提交于 2020-02-27 05:44:12
我一直在网站上工作,我想在浏览器标签上添加一个小图标。 如何在HTML中执行此操作以及在代码中我需要放置它的位置(例如标题)? 我有一个 .png 徽标文件,我想将其转换为图标。 相关: HTML在浏览器选项卡上设置图像 。 #1楼 我已经成功地为我的网站做了这个。 唯一的例外是,SeaMonkey浏览器需要在 <head> 插入HTML代码; 然而,其他浏览器仍然会显示favicon.ico而不插入任何HTML。 此外,IE以外的任何浏览器都可以使用其他类型的图像,而不仅仅是.ico格式。 我希望这有帮助。 #2楼 要让Chrome显示页面图标(favicon),您需要从托管服务器检查您的网站,或者您可以在PC上开发和测试您的网站时使用本地主机。 #3楼 我建议您尝试 http://faviconer.com 将.PNG或.GIF转换为.ICO文件。 您可以在一个.ICO文件中创建 16x16 和 32x32 (用于新的视网膜显示)。 没有IE和Firefox的问题 #4楼 我找到的最好的是 http://www.favicomatic.com/ 我说得最好,因为它给了我最清晰的图标,并且在转换后不需要编辑。 它会产生16x16和32x32的favicons并引用它们“每个该死的大小,先生!” 此外,他们的网站看起来很酷,易于使用。 它们还会生成您需要用于生成的文件的html。

ASP.NET MVC快速开发框架FastExecutor开发全过程感受及总结

心不动则不痛 提交于 2020-02-26 14:41:32
困境 追溯到2018年5月份,是个炎热的夏天,毕业后1年7个月我提出了离职,原因是受不了原来公司过度的封装框架感觉一年多毫无进步与实施天天轰炸般的电话,偶然间出去面试了一次发现自己知识真的是比较局限,决定换个环境提升自己,5月份出去面试屡屡碰壁,还好在老同事的介绍下进了个相关行业的公司,尽管还是一样的框架一样的味道,但是还是下定决心不管工作再忙都要不断的提升自己,哪怕每天进步一点点,我相信老天不会辜负有心人,可能今天你的付出不会立刻得到回报,但总会在未来的某一天,收获悄然而至。 挣脱 下定决心学习后的第一个问题就是,我该学什么,从哪个方面入手,往大了说框架,算法,前端,往小了说图像,工具,消息推送等等,经历了一段时间的迷茫我还是决定从一个平常开发过程中自己觉得麻烦的问题入手——DB层工具,第一家公司使用的DB层是微软企业库,漫天的SQL的语句真的是痛不欲生,一个项目下来,DB类都有个小2万行出头,所以决定在微软企业库的基础上封装一个通用操作工具,就这样有了目标之后,先按照自己的想法做了一版,查找了很多资料,不断的重构优化,学习了解网上看到感觉有兴趣或者自己从来没有听说过的技术,就这样算是对自我学习有了一个入门。相信大家也有过这样的经历,想去学一项技术或者一个框架,文档教程都很齐全,但就是学不下去,我觉得可能给自己定一个目标做出一个东西会学习来更加迅速和快乐,有需求才会有产出

如何从ASP.Net MVC modelState获取所有错误?

房东的猫 提交于 2020-02-26 11:16:02
我想在不知道键值的情况下从modelState中获取所有错误消息。 循环以获取ModelState包含的所有错误消息。 我怎样才能做到这一点? #1楼 这也有效: var query = from state in ModelState.Values from error in state.Errors select error.ErrorMessage; var errors = query.ToArray(); // ToList() and so on... #2楼 此外, ModelState.Values.ErrorMessage 可能为空,但 ModelState.Values.Exception.Message 可能指示错误。 #3楼 foreach (ModelState modelState in ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { DoSomethingWith(error); } } 另请参见 如何在ASP.NET MVC中获取模型状态错误的集合? 。 #4楼 我能用一点LINQ做到这一点, public static List<string> GetErrorListFromModelState