Questions tagged «asp.net-mvc-3»

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

5
ASP.NET MVC 3-部分与显示模板与编辑器模板
因此,标题应能说明一切。 要在ASP.NET MVC中创建可重用的组件,我们提供3个选项(可能是我未提及的其他选项): 部分视图: @Html.Partial(Model.Foo, "SomePartial") 自定义编辑器模板: @Html.EditorFor(model => model.Foo) 自定义显示模板: @Html.DisplayFor(model => model.Foo) 就实际的View / HTML而言,所有三个实现都是相同的: @model WebApplications.Models.FooObject <!-- Bunch of HTML --> 所以,我的问题是-您何时/如何决定使用这三个中的哪一个? 我真正想要的是在创建一个问题之前要问自己的问题列表,这些问题的答案可以用来决定要使用哪个模板。 这是我发现使用EditorFor / DisplayFor更好的两件事: 他们在呈现HTML助手时会尊重模型层次结构(例如,如果您的“ Foo”模型上有一个“ Bar”对象,则“ Bar”的HTML元素将使用“ Foo.Bar.ElementName”来呈现,而一部分将具有“ ElementName”)。 更加健壮,例如,如果List<T>ViewModel中包含a 之类的东西,则可以使用@Html.DisplayFor(model => model.CollectionOfFoo),并且MVC足够聪明,可以看到它是一个集合,并为每个项目呈现单个显示(与Partial相反,这需要显式环)。 我还听说DisplayFor呈现了一个“只读”模板,但是我不明白-我不能在上面扔表格吗? 有人可以告诉我其他原因吗?是否有清单/文章比较这三个地方?

12
视图中的多个模型
我想在一个视图中有2个模型。该页面包含LoginViewModel和RegisterViewModel。 例如 public class LoginViewModel { public string Email { get; set; } public string Password { get; set; } } public class RegisterViewModel { public string Name { get; set; } public string Email { get; set; } public string Password { get; set; } } 我是否需要制作另一个包含这两个ViewModel的ViewModel? public BigViewModel …


4
ReSharper警告:“通用类型的静态字段”
public class EnumRouteConstraint<T> : IRouteConstraint where T : struct { private static readonly Lazy<HashSet<string>> _enumNames; // <-- static EnumRouteConstraint() { if (!typeof(T).IsEnum) { throw new ArgumentException( Resources.Error.EnumRouteConstraint.FormatWith(typeof(T).FullName)); } string[] names = Enum.GetNames(typeof(T)); _enumNames = new Lazy<HashSet<string>>(() => new HashSet<string> ( names.Select(name => name), StringComparer.InvariantCultureIgnoreCase )); } public bool Match(HttpContextBase httpContext, …


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

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 …


4
@ Html.DisplayFor的语法是什么?
我了解在Razor中,@ Html会做很多整洁的事情,例如为链接,输入生成HTML等。 但是我没有DisplayFor函数... 我为什么要写: @Html.DisplayFor(model =&gt; model.Title) 当我可以写的时候: @Model.Title

5
如何在cshtml模板中创建函数?
我需要创建一个仅在一个cshtml文件中必需的函数。您可以将我的情况视为ASP.NET页面方法,这是在页面中实现的最小Web服务,因为它们的作用域是一个页面。我知道HTML帮助器(扩展方法),但是我的功能只需要一个cshtml文件。我不知道如何在视图内创建函数签名。 注意:我正在使用Razor模板引擎。

22
类型或名称空间名称在名称空间“ System.Web.Mvc”中不存在
内置MVC3解决方案进展顺利,但浏览器出现错误: 编译器错误消息:CS0234:类型或名称空间名称'Html'在名称空间'System.Web.Mvc'中不存在(您是否缺少程序集引用?) Source Error: Line 25: &lt;add namespace="System.Web.Mvc" /&gt; Line 26: &lt;!--&lt;add namespace="System.Web.Mvc.Ajax" /&gt;--&gt; Line 27: &lt;add namespace="System.Web.Mvc.Html" /&gt; Line 28: &lt;add namespace="System.Web.Routing" /&gt; Line 29: &lt;add namespace="System.Web.WebPages" /&gt; 我已经为解决方案安装了数据包,NuGet并为所有项目设置了数据包MVC3。不MVC3包括图书馆System.Web.Mvc.Ajax, System.Web.Mvc.Html和其他人呢?为什么会出现错误? 在“引用”文件夹中,我具有System.Web.Mvc Runtime version: v4.0.30319, Version: 3.0.0.0 Web.config &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;!-- For more information on how to configure your …
217 c#  asp.net-mvc-3 

3
@media媒体查询和ASP.NET MVC剃刀语法冲突
我有一个使用Razor视图引擎在ASP.NET MVC中运行的大型站点。 我有一个基本样式表,其中包含整个网站的所有通用样式。但是,有时我会在页面的中使用特定于页面的样式&lt;head&gt;-通常是一两行。 我不特别喜欢将CSS放入其中,&lt;head&gt;因为它不是严格地将关注点分开,但是对于真正针对该页面的一两行而言,我宁愿不必附加另一个文件并增加带宽。 我有一个实例,但我想将特定于页面的媒体查询放入&lt;head&gt;,但是由于媒体查询使用@符号和方括号{},因此与razor语法冲突: @section cphPageHead{ &lt;style&gt; /* PAGE SPECIFIC CSS */ ... @media only screen and (max-width : 960px) &lt;-- the @ symbol here is clashing! { ... } } &lt;/style&gt; } 有办法解决这个问题吗?


4
ASP.NET MVC3-具有@ Html.EditorFor的textarea
我有ASP.NET MVC3应用程序,也有添加新闻的表格。当VS2010创建默认视图时,我只有用于字符串数据的文本输入,但是我想具有用于新闻文本的文本区域。我如何用Razor语法做到这一点。 文本输入如下所示: @Html.EditorFor(model =&gt; model.Text)

8
ViewBag,ViewData和TempData
任何人都可以解释何时使用 临时数据 ViewBag ViewData 我有一个要求,我需要在控制器一中设置一个值,该控制器将重定向到控制器二,控制器二将呈现视图。 我尝试使用ViewBag,当我到达第二个控制器时,该值会丢失。 我可以知道何时使用以及优缺点吗? 谢谢

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.