Questions tagged «asp.net-mvc-3»

ASP.NET MVC 3是Model-View-Controller扩展的第三个主要版本,用于在.NET框架中开发Web应用程序。

5
如何接受数组作为ASP.NET MVC控制器操作参数?
我有一个ASP.net MVC控制器Designs,该控制器具有以下签名的操作: public ActionResult Multiple(int[] ids) 但是,当我尝试使用url导航到此操作时: http://localhost:54119/Designs/Multiple?ids=24041,24117 该ids参数始终为空。有什么办法让MVC将?ids=URL查询参数转换为操作数组?我已经看到过使用动作过滤器的讨论,但据我所知,这仅适用于POST在请求数据中而不是在URL本身中传递数组的情况。

3
IIS8 Win8和runAllManagedModulesForAllRequests =“ true”
我试图在IIS8中运行配置中包含以下内容的应用程序: <modules runAllManagedModulesForAllRequests="true" /> IIS8给我一个错误,提示... 此配置部分不能在此路径上使用。当节锁定在父级时,会发生这种情况。锁定默认情况下是(overrideModeDefault =“ Deny”),或者是由一个带有overlayMode =“ Deny”或旧版allowOverride =“ false”的位置标记显式设置的。 我通过错误和快速的SO搜索猜测,存在一些更高级别的安全设置,该设置阻止了该行的允许。有任何想法吗?


7
ASP.NET MVC剃刀:HTML中的条件属性
下面的代码似乎并不干净。有任何改进代码的建议吗? <li @if(ViewData["pagename"].ToString()=="Business details"){ <text>class="active" </text> } > <a @if(ViewData["pagename"].ToString()=="Business details"){ <text>style="color: white; background-color: #08C; border: 1px solid #08C;" </text> } href="@Url.Action("BusinessDetails", "Business")">Business Details</a> </li> <li @if (ViewData["pagename"].ToString() == "Booking policies"){ <text>class="active"</text> }> <a @if (ViewData["pagename"].ToString() == "Booking policies") { <text>style="color: white; background-color: #08C; border: 1px solid #08C;" </text> } …

5
MVC3删除ModelState错误
我遇到了一种情况,我正在上传用户从其本地文件系统中选择的图像。在我看来,我的表单基本上有两个提交按钮。一个用于正常提交表单,然后执行所有验证。第二个仅用于上传图像,在这种情况下,我还不想验证。 我设法通过为“上传图片”提交按钮提供一个类值“样式名称取消”来关闭客户端验证,因此 <input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" /> 现在,当我回发时,我的模型具有属性UploadImageButton,单击此按钮时,它将填充此属性(输入的名称与该属性匹配)。这样,我知道表单是由我真正的Submit按钮还是UploadImageButton提交的。 我的问题是...如何关闭ServerSide验证?我不希望用户单击此按钮时显示“验证摘要”信息。我知道您可以使用此添加自定义模型错误 ModelState.AddModelError("{key}", "{error msg}"); 我正在寻找一种消除模型错误的方法。这可能吗? 编辑: 这是我想出的: foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) { //ModelState.Remove(key); //This was my solution before ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak }

4
胖模型/瘦控制器与服务层[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 我使用.Net开发企业应用程序已有很多年了。我的应用程序通常具有一个域模型,其中包含映射到SQL DB表的实体。我使用存储库模式,依赖注入和服务层。 最近,我们开始从事MVC 3项目的工作,我们在争论应该在哪里放置哪种逻辑。我遇到了瘦控制器/ FAT模型架构,并且想知道服务层如何适合 选项1-服务示范 控制器很薄,在模型上调用方法。这些模型“知道”如何从数据库加载自身并与存储库或服务对话。例如,customerModel具有Load(id)方法,并加载客户和一些子对象,例如GetContracts()。 选项2-控制器与服务对话 控制器要求服务检索模型对象。加载/存储等逻辑在服务层中。该模型是仅包含数据的纯实体模型。 为什么选项1会是一个更好的选择,尤其是当我们谈论企业应用时,我的经验告诉我要分开关注点,将模型和控制器保持尽可能的薄,并让专门的服务执行业务逻辑(包括数据库交互) 感谢您的所有建议和对良好资源的引用。

11
MaxLength属性未生成客户端验证属性
我对ASP.NET MVC3客户端验证有一个奇怪的问题。我有以下课程: public class Instrument : BaseObject { public int Id { get; set; } [Required(ErrorMessage = "Name is required.")] [MaxLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")] public string Name { get; set; } } 在我看来: <div class="editor-field"> @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </div> 这是我为此字段的文本框获取的生成的HTML: <input …

5
为我的MVC应用程序创建服务层?
据我了解,MVC通过作为控制器的“胶水”将类定义(模型)与表示(视图)分开。控制器应负有单一责任,因此是可测试的。ViewModel用于将来自多个实体的数据汇总在一起,并“按摩”来自视图的控制器的数据。 似乎业务逻辑并没有真正的位置...所以我认为适合服务的另一层是合适的。我只是不确定在哪里放置此层,或如何构建服务-它应该是一个包含大量功能的称为“服务”的类吗?我对MVC有点陌生,因此任何阅读材料,样本或常规的新手技巧都很棒。

5
在Razor中串联字符串
如何使用Razor语法连接两个字符串? 如果我有:@Model.address并且@Model.city我希望投入产出,address city我该怎么办?像做一样简单@Model.address + " " + @Model.city吗?


10
无布局的剃刀视图
Layout = null;在我看来,它怎么仍会保留默认布局呢? 有什么技巧可以阻止它这样做吗? 这是我没有布局的看法: @{ Layout = ""; } <!DOCTYPE html> <html> <head> <title>Index</title> @{Html.RenderAction("Head", "Header");} </head> <body> <div> Home </div> </body> </html> 这是渲染的输出!! <!DOCTYPE html> <html> <head> <title>Index</title> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link href="/Content/Site.css" rel="stylesheet" type="text/css" /> <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> <script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script> </head> …

12
根据Html.TextBoxFor的条件设置禁用属性
我想基于asp.net MVC中的Html.TextBoxFor的条件设置禁用属性,如下所示 @Html.TextBoxFor(model => model.ExpireDate, new { style = "width: 70px;", maxlength = "10", id = "expire-date" disabled = (Model.ExpireDate == null ? "disable" : "") }) 该帮助器有两个输出disable =“ disabled”或disabled =“”。这两个主题都使文本框禁用。 如果Model.ExpireDate == null,我想禁用文本框,否则我想启用它

5
System.Collections.Generic.IEnumerable”不包含“ ToList”的任何定义
这是问题所在。我从ViewPage获取IEnumerable,当我尝试将其转换为List时,它显示出如下错误: ' System.Collections.Generic.IEnumerable<Pax_Detail>'不包含'ToList'的定义,找不到扩展方法'ToList'接受类型为' System.Collections.Generic.IEnumerable<Pax_Detail>'的第一个参数(是否缺少using指令或程序集引用?) 这是我的控制器代码: [HttpPost] public ActionResult Edit_Booking(Booking model, IEnumerable<Pax_Detail> pax) { List<Pax_Detail> paxList = new List<Pax_Detail>(); paxList = pax.ToList(); //getting error here BookingDL.Update_Booking(model, paxList); return View(); } 我在另一个控制器上应用了相同的逻辑。而且工作正常。我不知道有什么问题。我已经清理过,重建了项目,还重新启动了笔记本电脑(尽管这是必需的)。
80 c#  asp.net-mvc-3 

4
带级联截面的Razor嵌套布局
我有一个使用Razor作为其视图引擎的MVC3网站。我希望我的网站可以换肤。大多数可能的外观非常相似,以至于它们可以从共享的主版面派生。 因此,我正在考虑以下设计: 但是,我希望能够RenderSection在最底层调用_Common.cshtml,并使其呈现在最顶层定义的部分Detail.cshtml。这是行不通的:RenderSection显然只渲染下一层定义的部分。 当然,我可以定义每个皮肤中的每个部分。例如,如果_Common需要调用RenderSection("hd")中定义的部分Detail,我只需将其放在每个部分中即可使用_Skin: @section hd { @RenderSection("hd") } 这会导致代码重复(因为每个皮肤现在必须具有相同的部分),并且通常感到混乱。我还是Razor的新手,似乎我可能缺少明显的东西。 调试时,我可以在WebViewPage.SectionWritersStack中看到已定义部分的完整列表。如果我可以告诉RenderSection在放弃之前浏览整个列表,它将找到我需要的部分。Section,SectionWritersStack是非公开的。 另外,如果我可以访问布局页面的层次结构并尝试在每个不同的上下文中执行RenderSection,则可以找到所需的部分。我可能缺少了一些东西,但是我看不到任何办法。 除了我已经概述的方法之外,还有其他方法可以实现此目标吗?

6
用剃刀显示编码的HTML
我将编码的HTML存储在数据库中。 我可以正确显示它的唯一方法是: <div class='content'> @MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content)); </div> 它很丑。有什么更好的方法吗?

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.