Tag: razor

Html.DropDownList选择的值不起作用(使用带有IEnumberable 的构造函数)

我有一个问题,其中所选值不适用于Html.DropDownList帮助器方法。 见下文: 这是我的控制器: public ActionResult Edit(int id = 0) { NewsEvent item = GetItem(id); ViewBag.NewsItemId = new SelectList(ViewBag.NewsItemId.Items, “Id”, “Name”, item.NewsItemId); return View(item); } 这是我的观点: @Html.DropDownList(“NewsItemId”,ViewBag.NewsItemId as SelectList, string.Empty, new { @class = “form-control” }) 但是,当我在视图中尝试以下操作时,它可以工作: @Html.DropDownList(“NewsItemId”, string.Empty) 以下也可以,但由于字段名称与模型不匹配,因此无法正确发布。 @Html.DropDownList(“NewsItemIdDrop”,ViewBag.NewsItemId as SelectList, string.Empty, new { @class = “form-control” }) 我需要使用第一个选项的原因是我可以将class属性添加到控件。 有人能帮助我理解我做错了什么吗?

始终使用MVC3和Razor输出原始HTML

我有一个类似于以下属性的类: [AllowHtml] [DataType(DataType.MultilineText)] public string Description { get; set; } 我已经放入[AllowHtml]属性让我通过我构建的表单向这个属性提交HTML,但我想要做的是输出属性的值作为原始HTML而不进行转义。 我知道我可以使用Html.Raw(Model.Description)但我正在寻找的是告诉Html.DisplayFor(m => m.Description)始终输出原始HTML的一些方法。 是否有一个属性我可以用来装饰我class级的属性,我希望这样做? 基本上我是懒惰的 – 我不想记住哪些属性可能包含HTML,所以我不想在我需要做上面的时候考虑使用Html.Raw(…) – 我更确切地说,我的模型知道它应该做什么并自动完成。 我试过寻找答案,但要么我没有正确地说它或者没有办法做到这一点:( 谢谢,

带有html属性的html.BeginForm asp.net mvc4

我有Html.BeginForm编辑动作。 如何添加HTML属性? 我只知道一种方式: @using (Html.BeginForm(“Edit”, “Clients”, FormMethod.Post, new { @class=”example”})) { } 但如果我使用这种方法,我无法传递当前的ID 是否可以在不修改操作URL的情况下将HTML属性添加到表单中?

找不到RedirectToLocal

我有这个代码: using Solutionsecurity.web.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Security; namespace Solutionsecurity.web.Controllers { public class HomeController : Controller { public ActionResult Login() { return View(new User()); } [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(User u, string ReturnUrl) { if (Membership.ValidateUser(u.login, u.password)) { return RedirectToLocal(ReturnUrl); } else { return View(u); } } […]

你如何在VS 2013中关闭Razor高亮显示?

我发现了一个线程: 突出显示在Visual Studio 2010中杀死了我的Razor语法 ,询问并解释了如何关闭Razors代码的突出显示。 问题是,我导航到: Tools -> Options -> Environment -> Fonts and Colors但剃刀选项不存在! 我确信我可以习惯它,但它相当分散注意力,因为我对MVC仍然很新。 这是我的选择: (图片并没有像我想象的那样清晰,但Razor选项并不存在!)

RenderSection()内部部分与母版页

我在主页面(布局)中添加了部分“侧边栏”,在我正在使用的部分内部: @RenderSection(“SearchList”, required: false) 在其中一个使用我正在做的母版页的视图中: @section SearchList { // bunch of html } 但它给了我错误: 无法直接请求文件“〜/ Views / Shared / _SideBar.cshtml”,因为它调用“IsSectionDefined”方法。 这有什么不对?

避免VBCSCompiler对Roslyn驱动的ASP.NET Razor MVC视图的影响?

为了在MVC5的Razor视图中支持C#6,我们通过web.config打开了Roslyn编译器平台: 但是,在生产部署之后,每个视图/控制器似乎都有明显的“第一次加载”延迟,这比没有启用此编译器时更糟糕。 重要的是,此延迟是您从部署的新站点获得的常规JIT延迟的补充。 页面显然较慢,而VBCSCompiler.exe似乎在后台运行以“进一步编译”这些页面。 是否有预编译/优化此情况的最佳实践,以消除部署后的首次加载运行时延迟? 理想情况下,VBCSCompiler.exe在部署发生后未运行,并在构建时执行。 我已经看到了aspnet_compiler.exe的提及,并遇到了StackExchange.Precompilation(请参阅https://blog.stackoverflow.com/2015/07/announcing-stackexchange-precompilation/ ),并想知道这是否是正确的修复程序。 有没有人对这个特殊问题有任何经验? 谢谢。

MVC如何使用参数返回视图

目前我有一个可行的方法,它在点击Razor中的代码链接时正在工作: @Html.ActionLink(“New User ,Register”, “Register”, new { OpenID = Model.OpenID }) 我想从控制器返回视图具有相同的效果,此时我正在使用此代码但没有成功 return View(“Register”, lm); 我在MVC很新,所以我有点困惑。 返回的视图与我的上一个代码未命中smt并且我支持与new { OpenID = Model.OpenID }的部分new { OpenID = Model.OpenID } 你能指出我正确的方向吗? 这是我的控制器的方法: public ActionResult Register(string OpenID)

Html.Labelfor使用对象的DisplayName而不是属性

鉴于这样的视图模型: public class ParentViewModel { public object ChildViewModel { get; set; } } 如果我像这样使用Html.LabelFor : @Html.LabelFor(model => model.ChildViewModel) 我会得到这样的输出: ChildViewModel 我实际想要的是生成的标签使用应用于对象EG的DisplayName属性 [DisplayName(“My Custom Label”)] public class ChildViewModel { } 输出: My Custom Label 我知道Html.LabelFor方法接受一个需要一个属性的表达式,它将在该属性上查找DisplayName属性而不是对象本身。 我创建了一个Html帮助器方法来实现我想要的样子: public static IHtmlString CreateLabel(this HtmlHelper html, Func func) where TModel : class { TagBuilder tb = new TagBuilder(“label”); var model […]

视图组件中的Javascript

我有一个View组件,在Razor(.cshtml)文件中包含一些jQuery。 脚本本身非常特定于视图(处理一些第三方库的配置),因此我想将脚本和HTML保留在同一个文件中,以便组织起见。 问题是脚本没有在_Layout Scripts部分中呈现。 显然,这就是MVC处理与View组件有关的脚本的方式。 我可以通过在Razor文件中使用脚本来解决它, 但不能在Scripts部分内部 。 但后来我遇到依赖问题 – 因为在引用库之前使用了jQuery(对库的引用位于_Layout文件的底部附近)。 除了将jQuery的引用作为Razor代码的一部分包含在内之外,还有什么聪明的解决方案(这会阻碍HTML呈现放置组件的位置)吗? 我目前不在代码的前面,但是如果有机会,如果有人需要查看它以更好地理解它,我当然可以提供它。