Tag: razor

MVC Razor @foreach

我听说在视图里面有@foreach是不可能的。 意思是说,这个观点不应该有任何逻辑。 @foreach逻辑的最佳实践是什么? @foreach..

Html.DropdownListFor选定的值没有被设置

如何设置Html.DropDownListFor的选定值? 我一直在网上看,看到它可以通过使用第四个参数,如下所示: @Html.DropDownListFor(m => m, new SelectList(Model, "Code", "Name", 0), "Please select a country") 我的select列表显示如下: <select id="ShipFromCountries" name="ShipFromCountries"> <option value="">Please select a country</option> <option value="GB">United Kingdom</option> <option value="US">United States</option> … </select> 但由于某些原因英国仍然被选中,但我想要“请select一个国家”来select。 任何人都知道我可以做到这一点? 编辑 我已经更新了我的代码,因为function上有轻微的变化,但似乎仍然遇到了这个问题。 这是我的看法: @Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, "OrderTemplateId", "OrderTemplateName", 1), "Please select an order template") 1是我想要select的option的ID,我也尝试了option的文本,但也没有工作。 有任何想法吗?

ASP.NET MVC 3 Razor性能

重要更新:请参阅底部的更新5,在asp.net mvc 3中没有性能问题,这是一个基准问题 我已经做了一个简单的hello世界项目在asp.net mvc2,3 aspx和3razor和基准。 我所看到的是: System Requests per second ——————————————- asp.net mvc 2 ASPX 4200 asp.net mvc 3 Beta 1 ASPX 3200 asp.net mvc 3 Beta 1 Razor 1700 剃刀有什么问题,这么慢? 更新:我已经重做了testing。 所有4个testing虚拟目录使用相同的.net 4集成模式应用程序池。 所有项目都添加新的空x项目,并添加1页面,1行文本,没有代码。 所有网站都以发布模式编译。 我的系统是Windows 7,4 GB的i7 4核心。 我已经跑了testing2次来预热iis,这是第二次运行的结果。 apache bench参数:ab -n100000 -c1000结果: System Requests per second CPU Utilization —————————————————- asp.net 4 […]

Razor视图中的string插值?

这是支持吗? 如果是这样,是否有一些技巧来启用它? 我假设剃刀没有使用足够新的编译器…? VS2015的IDE似乎没问题,但在运行时,我越来越 CS1056:意外的字符'$'

ASP.NET MVC:Razor中的自定义Html Helpers

使用Razor时,我遇到了Html Helpers的困难。 所述帮助者在MVC 2中使用web表单视图引擎工作良好。 但不是在剃刀。 我在运行时得到的错误是: Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments Source Error: Line 1: @using Wingspan.Web.Mvc; Line 2: @Html.IncrementalMenu(MenuBlock.Site) 展开显示详细的编译器输出显示: d:\…\Views\Shared\MenuTop.cshtml(2,1): error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments d:\…\Views\Shared\MenuTop.cshtml(2,7): error CS1503: Argument 1: cannot convert from 'void' to […]

根据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" : "") }) 这个帮手有两个输出禁用=“禁用”或禁用=“”。 这两个主题使文本框禁用。 我想禁用文本框,如果Model.ExpireDate == null否则我想启用它

ASP.NET MVC 3 Razorrecursion函数

好的,所以我想显示一个包含列表清单的清单… 我无法知道需要显示多less个关卡,所以我想这就是我发现旧的recursion程序的地方。 我正在遇到问题,但是如何去做这个。 这是我到目前为止(在视图 – 简化): @foreach(MyObject item in @Model.ListOfObjects){ <div> @item.Title </div> //Call recursive function? } 现在每个这些对象也都有一个List <MyObject>。 我想要显示这个div下面的每个级别,每个级别的标签缩进例如。 我认为Razorfunction在这里是可以做的,但是我需要一些帮助来形成它。 这是我的想法: @functions{ public static void ShowSubItems(MyObject _object){ if(_object.ListOfObjects.Count>0){ foreach(MyObject subItem in _object.listOfObjects){ // Show subItem in HTML ShowSubItems(subItem); } } } } 但正如你所看到的,我显然需要一些帮助:)

如何在MVC 5项目中使用Razor引擎添加Date Picker Bootstrap 3?

我需要一些关于如何在使用Razor引擎的MVC 5项目上安装Date Picker Bootstrap 3的指导。 我发现这个链接在这里,但不能让它在VS2013工作。 从上面的后面的链接中的示例中复制我已经完成了以下操作: bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( "~/Scripts/bootstrap.js", "~/Scripts/bootstrap-datepicker.js", // ** NEW for Bootstrap Datepicker "~/Scripts/respond.js")); bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap.css", "~/Content/bootstrap-datepicker.css", // ** NEW for Bootstrap Datepicker "~/Content/site.css")); 然后我将脚本添加到索引视图如下 @section Scripts { @Scripts.Render("~/bundles/jqueryval") <script type="text/javascript"> $('.datepicker').datepicker(); //Initialise any date pickers </script> } 现在,如何在这里调用dateselect器? <div class="form-group input-group-sm"> @Html.LabelFor(model => model.DropOffDate) @Html.TextBoxFor(model => model.DropOffDate, new { […]

用剃刀显示编码的html

我将编码的HTML存储在数据库中。 我能正确显示它的唯一方法是: <div class='content'> @MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content)); </div> 它很丑。 有没有更好的方法来做到这一点?

我怎样才能用Html.BeginForm()命名一个窗体?

如何使用Html.BeginForm()给ASP.NET MVC中的表单命名? 我只想要名称,而不是操作或控制器名称,因为我想通过Javascript发布。 我认为这应该是像Html.BeginForm(id = "frm") 。 我尝试了以下内容: Html.BeginForm(null,null,new{id="frm",name="frm}) Html.BeginForm(new{@id="frm",@name="frm}) 但是上面的代码产生这样的输出: <form action="/Main/Index/Id?name=Id" method="post">