Questions tagged «asp.net-mvc-2»

ASP.NET MVC 2是ASP.NET MVC平台的第二个主要版本,此后已被ASP.NET MVC 3淘汰。

5
ASP.NET MVC模型与ViewModel
好的,我一直在听有关MS的ASP.NET MVC的“ ViewModels”讨论。 现在,这打算成为一种特定的模型,对吗?不是特定类型的视图。 据我了解,这是一种模型,其特定目的是与View进行交互?或类似的东西? 一些澄清将不胜感激。


3
ActionLink htmlAttributes
作品 <a href="@Url.Action("edit", "markets", new { id = 1 })" data-rel="dialog" data-transition="pop" data-icon="gear" class="ui-btn-right">Edit</a> 不起作用-为什么? @Html.ActionLink("Edit", "edit", "markets", new { id = 1 }, new {@class="ui-btn-right", data-icon="gear"}) 看来您无法将诸如data-icon =“ gear”之类的内容传递给htmlAttributes? 有什么建议吗?



12
关于MVC验证的单元测试
在MVC 2 Preview 1中使用DataAnnotation验证时,如何在验证实体时测试控制器操作是否将正确的错误放入ModelState中? 一些代码来说明。一,动作: [HttpPost] public ActionResult Index(BlogPost b) { if(ModelState.IsValid) { _blogService.Insert(b); return(View("Success", b)); } return View(b); } 这是一个失败的单元测试,我认为应该通过但不能(使用MbUnit和Moq): [Test] public void When_processing_invalid_post_HomeControllerModelState_should_have_at_least_one_error() { // arrange var mockRepository = new Mock<IBlogPostSVC>(); var homeController = new HomeController(mockRepository.Object); // act var p = new BlogPost { Title = "test" }; …


2
为什么对同一个ASP.NET MVC操作同时进行多个AJAX调用会导致浏览器阻塞?
几天前,我问了这个问题: 为什么$ .getJSON()会阻止浏览器? 我几乎在同一控制器动作上同时触发了六个jQuery ajax异步ajax请求。每个请求需要10秒才能返回。 通过调试和记录对操作方法的请求,我注意到请求已被序列化,并且从未并行运行。即我在log4net日志中看到一个时间轴,如下所示: 2010-12-13 13:25:06,633 [11164]信息-获得:1156 2010-12-13 13:25:16,634 [11164]信息-返回:1156 2010-12-13 13:25:16,770 [7124]信息-得到:1426 2010-12-13 13:25:26,772 [7124]信息-返回:1426 2010-12-13 13:25:26,925 [11164]信息-得到:1912 2010-12-13 13:25:36,926 [11164]信息-返回:1912 2010-12-13 13:25:37,096 [9812]信息-得到:1913 2010-12-13 13:25:47,098 [9812]信息-返回:1913 2010-12-13 13:25:47,283 [7124] INFO-Got:2002 2010-12-13 13:25:57,285 [7124]信息-返回:2002 2010-12-13 13:25:57,424 [11164]信息-获得:1308 2010-12-13 13:26:07,425 [11164]信息-返回:1308 查看FireFox中的网络时间轴,我看到以下内容: 上面的日志示例和Firefox网络时间轴都针对同一组请求。 是否对来自同一页面的同一操作的请求进行了序列化?我知道Session在同一会话中对对象的序列化访问,但是没有任何会话数据被触摸。 我将客户端代码剥离为一个请求(运行时间最长的请求),但这仍然会阻塞浏览器,即,仅当ajax请求完成时,浏览器才会响应任何链接单击。 我在这里(在Chrome的开发人员工具中)还观察到,在长时间运行的ajax请求执行时单击链接时,它Failed to load …

8
ASP.NET MVC-捕获所有路由和默认路由
为了使我的应用程序正确产生404错误,我在路由表的末尾实现了一条捕获所有路由,如下所示: routes.MapRoute( "NotFound", _ "{*url}", _ New With {.controller = "Error", .action = "PageNotFound"} _ ) 但是,要使其正常工作,我必须删除默认路由: {controller}/action/{id} 但是现在已经删除了默认设置,我的大多数操作链接都不再起作用,而我发现让它们再次起作用的唯一方法是为每个控制器/操作添加单独的路由。 有没有一种更简单的方法,而不是为每个控制器/动作添加路由? 如果用户尝试导航到未知路由,是否可以创建一个默认路由,该默认路由仍允许全部路由工作?

16
创建时显示“ Id字段为必填”验证消息;ID未设置为[必填]
当我尝试使用Asp.Net MVC 2中的“创建样式”操作创建实体时,就会发生这种情况。 POCO具有以下属性: public int Id {get;set;} [Required] public string Message {get; set} 在创建实体时,会自动设置ID,因此在Create操作中不需要它。 ModelState说“ Id字段是必需的”,但我没有将其设置为。这里有自动的东西吗? 编辑-原因揭示 布拉德·威尔逊(Brad Wilson)通过保罗·斯佩兰萨(Paul Speranza)在他说的以下评论之一中回答了这个问题的原因(欢呼保罗): 您正在提供ID的值,只是不知道您的身份。它位于默认路由(“ {controller} / {action} / {id}”)的路由数据中,其默认值为空字符串,该字符串对int无效。使用操作参数上的[Bind]属性来排除ID。我的默认路由是:new {controller =“ Customer”,action =“ Edit”,id =“”} //参数默认值 编辑-更新模型技术 实际上,我通过使用TryUpdateModel和与之相关的exclude参数数组更改了再次执行此操作的方式。 [HttpPost] public ActionResult Add(Venue collection) { Venue venue = new Venue(); if (TryUpdateModel(venue, null, …

3
在ASP.NET MVC中使用Tempdata-最佳实践
我正在使用ASP.NET MVC 3来构建Web应用程序。 我试图做的是在两个控制器之间传递值,尽管有很多方法可以做到这一点,我对此特别感兴趣TempData。 public ActionResult Action1() { string someMessage; Test obj = SomeOperation(); if(obj.Valid) { someMessage = obj.UserName; } else { someMessage = obj.ModeratorName; } TempData["message"] = someMessage; return RedirectToAction("Index"); } public ActionResult Index() { ViewBag.Message = TempData["message"] return View(); } 那么TempData这里的用法正确吗?我的意思是,按照最佳编程实践,这是正确的使用方式TempData吗? 在什么实时情况下应该TempData使用? 注意:我已经通过以下链接 何时在ASP.Net MVC中使用TempData与Session http://www.gregshackles.com/2010/07/asp-net-mvc-do-you-know-where-your-tempdata-is/ 谢谢

3
JSONResult转换为String
我有一个JsonResult工作正常,并从某些POCO返回JSON。我想将JSON作为字符串保存在数据库中。 public JsonResult GetJSON() { JsonResult json = new JsonResult { Data = GetSomPocos() }; return json; } 我需要审核响应,因此要将其保存json到数据库中。我很难找到一种将JSON作为字符串获取的方法。 任何帮助表示赞赏。

4
如何串联多个MvcHtmlString实例
由于在MSDN中找到此信息,我对如何连接MvcHtmlString实例有一些疑问: MvcHtmlString类表示一个HTML编码的字符串,不应再次对其进行编码 使用以下代码时,我是否会冒险两次对字符串进行HTML编码: var label = Html.LabelFor(model => model.Email); var textbox = Html.TextBoxFor(model => model.Email); var validation = Html.ValidationMessageFor(model => model.Email); var result = MvcHtmlString.Create( label.ToString() + textbox.ToString() + validation.ToString()); (请注意:这应该纳入HtmlHelper扩展方法中,以减少视图中的代码重复)。
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.