Questions tagged «asp.net-mvc»

ASP.NET MVC框架是一个开源Web应用程序框架和工具,可实现针对Web应用程序量身定制并基于ASP.NET技术基础的模型-视图-控制器(MVC)模式版本。

11
如何使自定义错误页面在ASP.NET MVC 4中工作
我想要为500、404和403显示一个自定义错误页面。这是我所做的: 在web.config中启用了自定义错误,如下所示: <customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml"> <error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml" /> <error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml" /> </customErrors> HandleErrorAttribute在FilterConfig类中注册为全局操作过滤器,如下所示: public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); } 为上述每个消息创建了一个自定义错误页面。开箱即用的默认500。 在每个自定义错误页面视图中声明该页面的模型为 System.Web.Mvc.HandleErrorInfo 对于500,它将显示自定义错误页面。对于其他人则不是。 我有什么想念的吗? 当我阅读类OnException方法中的代码时HandleErrorAttribute,看起来并不仅限于显示自定义错误,并且仅处理500个。 要处理其他错误我该怎么办?

22
如何处理ASP.NET MVC表单中的复选框?
警告:这个问题已有九年历史了! 最好的选择是搜索较新的问题,或者搜索下面的答案以查找您的MVC的特定版本,因为此处的许多答案已经过时了。 如果找到适合您版本的答案,请确保答案包含您正在使用的MVC的版本。 (原始问题从下面开始) 对我来说,这似乎有些奇怪,但是据我所知,这就是您的做法。 我有一组对象,希望用户选择其中一个或多个。这对我来说是“带有复选框的表格”。我的对象没有“选择”的任何概念(它们是通过反序列化wcf调用而形成的基本POCO)。因此,我执行以下操作: public class SampleObject{ public Guid Id {get;set;} public string Name {get;set;} } 在视图中: <% using (Html.BeginForm()) { %> <%foreach (var o in ViewData.Model) {%> <%=Html.CheckBox(o.Id)%> <%= o.Name %> <%}%> <input type="submit" value="Submit" /> <%}%> 而且,在控制器中,这是查看用户检查哪些对象的唯一方法: public ActionResult ThisLooksWeird(FormCollection result) { var winnars = from x …

11
如何从ASP.NET MVC控制器方法返回由JSON.NET序列化的camelCase JSON?
我的问题是我希望通过ActionResult从ASP.NET MVC控制器方法(由JSON.NET序列化)中返回camelCased(与标准PascalCase相反)JSON数据。 作为示例,请考虑以下C#类: public class Person { public string FirstName { get; set; } public string LastName { get; set; } } 默认情况下,当从MVC控制器以JSON返回此类的实例时,它将以以下方式序列化: { "FirstName": "Joe", "LastName": "Public" } 我希望将其序列化(通过JSON.NET)为: { "firstName": "Joe", "lastName": "Public" } 我该怎么做呢?


7
在ASP.NET MVC Razor视图中将换行符替换为<br />
我有一个接受输入的textarea控件。我试图稍后通过使用以下命令将该文本呈现到视图中: @ Model.CommentText 这可以正确编码任何值。但是,我想将换行符替换为&lt;br /&gt;,但我找不到确保新的br标签不会被编码的方法。我尝试使用HtmlString,但还没有任何运气。


9
如何在ASP.NET MVC中找到操作的绝对URL?
我需要做这样的事情: &lt;script type="text/javascript"&gt; token_url = "http://example.com/your_token_url"; &lt;/script&gt; 我正在使用MVC的Beta版,但无法弄清楚如何获取操作的绝对网址。我想做这样的事情: &lt;%= Url.AbsoluteAction("Action","Controller")) %&gt; 是否有帮助程序或Page方法?
239 asp.net-mvc 

11
ViewModel最佳做法
从这个问题来看,让控制器创建一个ViewModel来更准确地反映视图试图显示的模型似乎很有意义,但是我对某些约定感到好奇(我是MVC模式的新手。 ,如果还不是很明显的话)。 基本上,我有以下问题: 我通常喜欢一个班级/一个文件。如果仅创建ViewModel只是为了将数据从控制器传递到视图,这是否有意义? 如果ViewModel确实属于其自己的文件,并且您正在使用目录/项目结构将各部分分开,则ViewModel文件属于什么地方?在Controllers目录中? 目前基本上就是这样。我可能还会提出一些其他问题,但这在最后一个小时左右一直困扰着我,而且我似乎可以在其他地方找到一致的指导。 编辑:在CodePlex上查看 示例NerdDinner应用程序,看起来ViewModels是控制器的一部分,但仍然令我感到不舒服的是它们不在自己的文件中。

5
非静态方法需要目标
我有一个控制器操作,该操作在Firefox本地和生产环境中以及本地IE上均能正常运行,但在生产环境中却无法正常运行。这是我的控制器动作: public ActionResult MNPurchase() { CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"]; decimal OP = landTitleUnitOfWork.Sales.Find() .Where(x =&gt; x.Min &gt;= calculationViewModel.SalesPrice) .FirstOrDefault() .OP; decimal MP = landTitleUnitOfWork.Sales.Find() .Where(x =&gt; x.Min &gt;= calculationViewModel.MortgageAmount) .FirstOrDefault() .MP; calculationViewModel.LoanAmount = (OP + 100) - MP; calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850); return View(calculationViewModel); } 这是我在IE中得到的堆栈跟踪: 错误。处理您的请求时发生错误。System.Reflection.TargetException:非静态方法需要一个目标。在System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)在System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj,BindingFlags …


13
Java Server Faces 2.0的主要缺点是什么?
昨天,尽管我目前是一名快乐的ASP.NET MVC / jQuery开发人员,但我看到了有关Java Server Faces 2.0的演示,该演示看上去确实令人印象深刻。我最喜欢JSF的地方是大量支持AJAX的UI组件,这些组件似乎使开发速度比使用ASP.NET MVC快得多,尤其是在AJAX繁重的网站上。集成测试也看起来非常不错。 由于演示文稿仅强调了JSF的优点,因此我也想听听另一面的信息。 所以我的问题是: Java Server Faces 2.0的主要缺点是什么? 是什么让JSF开发人员考虑使用ASP.NET MVC而不是JSF?
234 asp.net-mvc  jsf  jsf-2 



30
Visual Studio 2012 Web发布不会复制文件
我在VS 2012中有一个Web应用程序项目,当我使用Web发布工具时,它会成功构建,但不会将任何文件复制到发布目标(在本例中为File System)。 如果查看构建输出,则可以看到所有内容都已正确复制到obj \ Release \ Package \ PackageTmp \中,但是在构建输出中看到的是: 4&gt;完成构建项目“ {Project} .csproj”。 4&gt;正在删除现有文件... 4&gt;正在发布文件夹/ ... 4&gt; ========== Build:3成功,0失败,1最新,跳过0 ===== ===== =========发布:1成功,0失败,0跳过========== 即使它说发布成功,在发布的目标目录中也没有文件。 我已经在多个项目中看到过这种情况,有时似乎解决方案/平台配置会导致此问题,但是我无法找到确切的原因。 有没有其他人看到这种情况发生或对如何使其正常工作有想法? 更新: 我可能已经找到了解决方法。我只是再次发生了这种情况,并且在搞乱发布设置。一旦将“设置”选项卡上选择的“配置”更改为另一种配置,然后又返回到该配置,我想使用所有文件开始重新发布。希望将来可以在其他项目中使用。 更新2: 我在Microsoft Connect上发布了一个错误,并在VS Web开发人员团队中得到了开发人员的回音。他说,他们已经在内部版本中解决了此问题,并将尽快发布发布工具的更新,以解决此问题。 更新3: 最近,Visual Studio 2012 Update 2已修复此问题。

9
使用Html.ActionLink在不同的控制器上调用动作
我正在尝试使用进行控制器之间的导航ActionLink。我将用一个例子来说明我的问题。 我在Hat控制器的索引视图上,并且尝试使用以下代码创建指向Product控制器的Details动作的链接。 &lt;%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }) %&gt; 代替在Product控制器上创建到Details的链接,而是在Hat控制器下生成到Details动作的链接,并在其末尾附加一个Length参数: Hat/Details/9?Length=7 HTML.ActionLink由于这个问题,我无法使用控制器之间进行切换。如果您能指出我在做什么,我将不胜感激。谢谢 PS:我使用的是MVC随附的默认路由设置 routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } );
224 asp.net-mvc 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.