Tag: asp.net mvc

来自默认(EditorTemplates / DisplayTemplates)以外的文件夹的MVC模板?

你可以指向MVC的文件夹以外的默认的(视图/共享/ EditorTemplates&Views / Shared / DisplayTemplates)? 我想要把它们放在那些下面的子文件夹中,或者放在共享文件夹以外的其他文件夹中。 例如,如果我在该文件夹下有一个编辑器模板: 〜\查看\订单\ ProductModel.cshtml 我怎么能告诉我的EditorFor模板使用这个tempalte的名字? 我试图完全排除它,但是这不起作用: @Html.EditorFor(m => m.ProductModel, @"~\Views\Order\ProductModel.cshtml") 我已经尝试使用正斜杠和反斜杠,有/无.chstml,我可以想到的每个组合。 我开始认为这不被支持,但我无法想象它为什么不会。

System.Web.Http.Authorize与System.Web.Mvc.Authorize

哪个授权属性? System.Web.Http.Authorize System.Web.Mvc.Authorize using System.Web.Mvc // or using System.Web.Http 典型的控制器 [Authorize] public class SomeController : Controller 我们有控制器用[Authorize]注解我只注意到,由于使用了命名空间 ,注释技术上指的是不同的属性类。 该项目包含MVC控制器和WEBAPI控制器。 我应该使用哪一个,为什么? 如果我不解决这个问题,我们可能会遇到什么问题?

使用存储库/服务模式和MVC时caching数据对象

我有一个基于MVC的网站,使用存储库/服务模式进行数据访问。 这些服务被编写用于大多数应用程序(控制台,winform和web)。 目前,控制器直接与服务进行通信。 这限制了应用适当caching的能力。 我看到我的select如下: 编写一个Web应用程序的包装,它实现了caching的IWhatEverService。 通过caching每个操作的ViewData来caching每个控制器。 不要担心数据caching,只需为每个Action执行OutputCaching。 我可以看到每个人的利弊。 使用Repository / Service进行caching的最佳做法是什么?

如何在运行时编译cshtml

我相信我读了某个地方有一个项目文件中的一个设置,将允许您在构buildVisual Studio项目时编译.cshtml文件。 刚开始使用MVC/Razor/Query Mobile,当我在.cshtml文件中的代码块中出现错误时,我正在烦恼“错误加载页面”

什么时候应该使用Html Helpers,Razor Helpers或Partial Views?

Razor视图引擎中存在这三种不同的function,可用于实现类似的结果。 最后,他们三人只是呈现HTML代码片断,但定义和使用它们的方式则相当不同。 我知道: Html助手被创build为HtmlHelper类的扩展方法。 他们经常使用TagBuilder类来生成一些HTML,并总是返回一个IHtmlString 。 Razor Helpers( @helper方法)可以在本地(在相同的razor文件中)或全局(在App_Code目录中)定义。 他们是HTML代码的小片段,可以在Razor文件中专门重复使用。 最后,部分视图只是使用@Html.Partial助手可以包含在其他视图文件中的常规视图文件。 我的问题是: 是否有这些function的每个特定的情况? 或者为了达到相同的效果,可以归结为不同的口味?

MVC3 Url.Action查询string生成

我想在JavaScript环境(在cshtml文件中)生成一个MVC 3行动的url。 <script type="text/javascript"> … var src = "@Url.Action("GetProductImage", new { productId = Model.Product.Id, pos = 1, size = 0 })"; $(document.createElement("img")).attr("src", src); … </script> 现在这工作得很好,我的问题是查询string正在逃脱。 代替: "/Products/GetProductImage?productId=1&pos=0&size=0" 它会产生: "/Products/GetProductImage?productId=1&amp;pos=0&amp;size=0" 所以我的行动不会被调用。 现在我知道我可以创build自己的Url帮助器函数,但是我想知道是否可以使用这个或者其他一些内置的帮助器来获取非转义的URL? 在此先感谢,G.

如何将CSS类属性添加到razor的文本框?

我努力了: @Html.TextBoxFor(m => m.UserName, new {@class='textbox'}) 这不工作。

MVC 4数据注释“显示”属性

我开始与MVC 4(剃刀视图引擎)。 (我相信这可能适用于MVC 3和更早版本。)我想知道是否有任何好处,在视图中使用DisplayAttribute数据注释,而不是直接在HTML中写入一个string。 例如,如果我有以下模型: public class Thing { public string WildAndCrazyProperty { get; set; } } 在注释财产方面会有什么好处: [Display(Name = "Wild and Crazy")] public string WildAndCrazyProperty { get; set; } …有我的标记是: <html> <body> <div>@Html.DisplayNameFor(modelItem => modelItem.WildAndCrazyProperty)</div> <div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div> </body> </html> …与没有注释,并做: <html> <body> <div>Wild and Crazy</div> <div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div> </body> </html> 在这种情况下,我没有提到Html.LabelFor的原因是因为该属性的数据在页面上显示为静态(即不可编辑)文本。 数据永远不能在这个页面上编辑,因此我不需要在第二个<div>中使用Html.TextBoxFor ,然后使用Html.LabelFor将标签与该文本框正确关联。

如何unit testing返回JsonResult的Action方法?

如果我有这样的控制器: [HttpPost] public JsonResult FindStuff(string query) { var results = _repo.GetStuff(query); var jsonResult = results.Select(x => new { id = x.Id, name = x.Foo, type = x.Bar }).ToList(); return Json(jsonResult); } 基本上,我从我的仓库中获取东西,然后将其投影到匿名types的List<T>中。 我如何进行unit testing? System.Web.Mvc.JsonResult有一个名为Data的属性,但是它的types是object ,正如我们所期望的那样。 那么这是否意味着如果我想testingJSON对象具有我期望的属性(“id”,“name”,“type”),我必须使用reflection? 编辑: 这是我的testing: // Arrange. const string autoCompleteQuery = "soho"; // Act. var actionResult = _controller.FindLocations(autoCompleteQuery); // Assert. Assert.IsNotNull(actionResult, […]

“参数字典包含参数的空条目” – 如何解决?

我试图实现一个编辑页面,以便pipe理员修改数据库中的数据。不幸的是我遇到了一个错误。 下面的代码: public ViewResult Edit(int productId) { // Do something here } 但我得到这个错误: "The parameters dictionary contains a null entry for parameter 'productId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ViewResult Edit(Int32)' in 'WebUI.Controllers.AdminController'. To make a parameter optional its type should be either a reference type or a Nullable type. Parameter name: parameters" 我在Global.asax.cs改变了我的路线,如下所示: routes.MapRoute( […]