Tag: asp.net mvc

MVC4 Bundle中的{版本}通配符

在MVC 4中,我们有捆绑。 在定义捆绑包时,我们可以使用通配符(如*)来存放文件夹中的所有文件。 在下面的例子中, -{version}是什么意思? public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); }

ASP.NET MVC中的asynchronous操作是否使用.NET 4上的ThreadPool的线程

在这个问题之后,在ASP.NET MVC中使用asynchronous操作时,这让我感觉很舒服。 所以,我写了两篇博文: 我在C#5.0和ASP.NET MVC Web应用程序中采用基于任务的asynchronous编程 在ASP.NET MVC 4中使用基于任务的asynchronous编程模型(TAP)调用asynchronous数据库 我对ASP.NET MVC的asynchronous操作有太多的误解。 我总是听到这样一句话: 如果操作asynchronous运行,应用程序可以更好地扩展 而且我也听到过很多这样的句子: 如果stream量很大,最好不要asynchronous执行查询 – 消耗2个额外的线程来处理一个请求,而这些请求会将资源从其他请求中分离出来。 我认为这两句话是不一致的。 我没有太多关于如何在ASP.NET上使用线程池的信息,但我知道线程池的线程大小是有限的。 所以,第二句话必须与这个问题有关。 我想知道ASP.NET MVC中的asynchronous操作是否使用.NET 4上的ThreadPool的线程? 例如,当我们实现一个AsyncController时,应用程序结构如何? 如果我得到巨大的stream量,实施AsyncController是一个好主意吗? 有没有人可以把这个黑色的窗帘放在眼前,向我解释有关ASP.NET MVC 3(NET 4)的asynchronous处理? 编辑: 我已经阅读了下面这个文件近百次,我理解了这个主要的协议,但是我仍然有困惑,因为那里有太多不一致的评论。 在ASP.NET MVC中使用asynchronous控制器 编辑: 假设我有像下面那样的控制器动作(不是AsyncController的实现): public ViewResult Index() { Task.Factory.StartNew(() => { //Do an advanced looging here which takes a while }); return View(); } […]

如何在动作链接中指定区域名称?

我有一个共享的母版页,我在我的mvc 2应用程序中从2个不同的区域使用。 母版页有一个动作链接,当前指定了控制器和动作,但当然如果我在错误的区域,链接不起作用。 我看到没有超载的actionlink需要一个区域参数,有没有可能做?

与ASP.NET WebForms相比,什么是ASP.NET MVC页面的“页面生命周期”?

与ASP.NET WebForms相比,什么是ASP.NET MVC页面的“页面生命周期”? 我试着更好地理解这个“简单”的问题,以确定是否可以轻松地从ASP.NET WebForms转换(非常)简单的网站中有现有的网页。 无论是“转换”下面的过程,还是一个替代的生命周期将是我正在寻找的。 我现在在做什么: (是的,我知道有人能够回答我的问题已经知道这一切 – 我只是试着比较一下“生命周期”,所以我想我会开始填写我们已经知道的) 呈现页面: 我有一个母版页,其中包含我的基本模板 我有内容页面给我从母版页到我把内容命名区域。 在每个内容页面的事件处理程序中,我从数据库加载数据(大部分是只读的)。 我将这些数据绑定到表示网格,下拉菜单或中继器的ASP.NET控件。 这些数据全部“生命于”生成的HTML内部。 它的一些进入ViewState(但我不会进入太多!) 我设置属性或将数据绑定到某些项目,如页面上的图像或文本框控件。 该页面被发送到客户端呈现为不可重用的HTML。 我尽量避免使用ViewState,而不是页面所需的至less。 客户端(不使用ASP.NET AJAX): 我可能会使用JQuery和一些令人讨厌的技巧来查找页面上的控件,并对其执行操作。 如果用户从下拉列表中select – 生成一个回发,在我的代码隐藏中触发一个C#事件。 这个事件可能会发送到数据库,但无论如何,全新生成的HTML页面最终都会被发送回客户端。 我可以使用Page.Session来存储我需要稍后重用的键值对 那么对于MVC,这个“生命周期”如何改变?

我是否需要一个Global.asax.cs文件,如果我正在使用一个OWIN Startup.cs类并移动所有的configuration?

举个例子,在MVC w / Individual Accounts模板制作的全新ASP.NET MVC 5应用程序中,如果我删除了Global.asax.cs类,并将其configuration代码移到Startup.cs Configuration()方法中,有什么缺点? public partial class Startup { public void Configuration(IAppBuilder app) { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ConfigureAuth(app); } } 对我来说,好处是当将ASP.NET 4应用程序升级到ASP.NET 5并使用现在必须在Startup.cs类中configuration的部分时,我不会在两个不同的类中进行dependency injection和其他configuration,启动和configuration。

我如何说服IE浏览器只显示应用程序/ JSON而不是提供下载?

在debugging使用AJAX的jQuery应用程序时,我经常需要查看服务返回给浏览器的json。 所以我会把JSON数据的URL放到地址栏中。 这对于ASPNET是很好的,因为在发生编码错误的情况下,我可以在浏览器中看到ASPNET diagostic: 但是,当服务器端代码正常工作,实际返回JSON,IE提示我下载它,所以我看不到响应。 我可以让IE浏览器不这样做,换句话说,只是将它显示为纯文本? 我知道我可以做到这一点,如果我的内容types头设置为text/plain 。 但是这是一个ASPNET MVC应用程序的上下文,当我在我的某个操作方法上使用JsonResult时,它会自动设置响应。 另外我还想保留适当的内容types,而不是仅仅为了支持debugging工作而改变它。

如何在Visual Studio 2012或Visual Studio 2013中打开一个旧的MVC项目?

我有一个旧的ASP.NET MVC 2项目,我不想升级到MVC 3或MVC 4.我正在运行Windows 8,Visual Studio 2012和Visual Studio 2013的新机器。当我尝试打开MVC 2 VS 2008或VS 2013中的项目我收到错误: 该项目与当前版本的Visual Studio不兼容 该项目然后卸载并在解决scheme资源pipe理器中变灰。 我不想安装Visual Studio的另一个副本。 如何在新版本的Visual Studio中打开一个旧的MVC项目?

ASP.NET MVC:数据input后修剪string的最佳方法。 我应该创build一个自定义模型绑定

我正在使用ASP.NET MVC,我想所有用户input的string字段被修剪之前,他们被插入到数据库中。 由于我有很多数据input表单,我正在寻找一个优雅的方式来修剪所有string,而不是显式修剪每个用户提供的string值。 我很想知道如何以及何时修剪string。 我想过也许创build一个自定义的模型绑定器并修剪任何string值…那样,我所有的修剪逻辑都包含在一个地方。 这是一个好方法吗? 是否有任何代码示例这样做?

如何为C#MVC4 WebAPI应用程序全局logging所有exception?

背景 我正在开发一个客户端的API服务层,我已经被要求捕捉并logging所有错误的全球。 所以,虽然类似未知端点(或动作)的东西很容易通过使用ELMAH或向Global.asax添加如下内容来处理: protected void Application_Error() { Exception unhandledException = Server.GetLastError(); //do more stuff } 。 。 。与路由无关的未处理错误不会被logging。 例如: public class ReportController : ApiController { public int test() { var foo = Convert.ToInt32("a");//Will throw error but isn't logged!! return foo; } } 我也尝试通过注册这个filter来全局设置[HandleError]属性: filters.Add(new HandleErrorAttribute()); 但是,这也不logging所有的错误。 问题/疑问 如何拦截上面调用/test生成的错误,以便我可以logging它们? 看起来这个答案应该是显而易见的,但是我已经尝试了所有我能想到的东西。 理想情况下,我想添加一些东西到错误logging,如请求用户的IP地址,date,时间等等。 当遇到错误时,我也希望能够自动发送电子邮件给支持人员。 所有这一切我都可以做,只要我能拦截这些错误发生时! 解决! 感谢达林·季米特洛夫(Darin Dimitrov),我接受了他的回答,我明白了这一点。 […]

应该将sorting逻辑放在模型,视图还是控制器中?

我有一个下拉列表,显示表中的值到最终用户。 我希望这些值按字母顺序sorting。 根据适当的MVCdevise,我应该在哪一层放置我的sorting逻辑:模型,视图还是控制器? 编辑 :在回应LarsH的问题,“你的意思是代码决定什么sorting顺序是需要的?或执行sorting的代码?”,我最初是指确定sorting顺序是什么意思的代码。