标签: html-helper

从MVC 5.1 EnumDropDownListFor中排除/删除值

我有一个用于用户管理页面的枚举列表.我正在使用MVC 5.1中的新HtmlHelper,它允许我为Enum值创建一个下拉列表.我现在需要从列表中删除Pending值,此值只能以编程方式设置,并且永远不应由用户设置.

枚举:

public enum UserStatus
{
    Pending = 0,
    Limited = 1,
    Active = 2
}
Run Code Online (Sandbox Code Playgroud)

视图:

@Html.EnumDropDownListFor(model => model.Status)
Run Code Online (Sandbox Code Playgroud)

无论如何,要么覆盖当前控件,要么编写一个允许我指定枚举的自定义HtmlHelper,或者从结果列表中排除枚举?或者你会建议我用jQuery做客户端的东西,一旦生成后从下拉列表中删除值?

谢谢!

c# asp.net-mvc enums html-helper razor

37
推荐指数
4
解决办法
2万
查看次数

单选按钮生成重复的HTML id-s

在使用这样的代码(EditorTemplates/UserType.ascx)时,默认的ASP.NET MVC2 Html助手似乎会生成重复的HTML ID:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<UserType>" %>

<%: Html.RadioButton("", UserType.Primary, Model == UserType.Primary) %>
<%: Html.RadioButton("", UserType.Standard, Model == UserType.Standard) %>
<%: Html.RadioButton("", UserType.ReadOnly, Model == UserType.ReadOnly) %>
Run Code Online (Sandbox Code Playgroud)

它产生的HTML是:

<input checked="checked" id="UserType" name="UserType" type="radio" value="Primary" /> 
<input id="UserType" name="UserType" type="radio" value="Standard" /> 
<input id="UserType" name="UserType" type="radio" value="ReadOnly" /> 
Run Code Online (Sandbox Code Playgroud)

这清楚地表明了一个问题.所以我一定是在滥用助手等等.

我可以手动指定id为html属性,但我无法保证它将是唯一的.

所以问题是如何确保RadioButton助手生成的ID对于每个值都是唯一的,并且仍然保留用于生成这些ID 的约定(因此嵌套模型是否受到尊重?(最好不要手动生成ID.)

html asp.net-mvc html-helper radio-button asp.net-mvc-2

35
推荐指数
2
解决办法
1万
查看次数

Html.Action和Html.RenderAction之间的区别

我一直试图弄清楚RenderAction和Action之间的区别.我不知道我是否如此关注这一点上的差异,以及为什么我无法让RenderAction工作.据我所知,我正在传递正确的参数.我正在使用的重载似乎是相同的:

@Html.RenderAction(Action, Controller, Route)

@Html.Action("Breadcrumb", "Navigation", new {SeoUrl = Model.CarlineBucket.SEOURLName})

@Html.RenderAction("Breadcrumb", "Navigation", new {SeoUrl = Model.CarlineBucket.SEOURLName})
Run Code Online (Sandbox Code Playgroud)

我尝试使用RenderAction时收到编译错误:

CS1502:'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重载方法匹配具有一些无效参数.

任何提示或提示?我是否应该甚至不打扰RenderAction?

.net html-helper razor asp.net-mvc-3

35
推荐指数
3
解决办法
6万
查看次数

我为什么要在MVC中使用LabelFor?

我为什么要用LabelFor而不是<label>

例如.

@Html.LabelFor(model => model.FirstName)
@Html.DisplayFor(model => model.FirstName)
Run Code Online (Sandbox Code Playgroud)

VS

<label for="FirstName">First Name</label>
@Html.DisplayFor(model => model.FirstName)
Run Code Online (Sandbox Code Playgroud)

除此之外,@ pswg已涵盖此问题的DRY方面.我还想知道它是否有助于本地化.即.基于当前语言设置的不同标签.

asp.net-mvc html-helper html.labelfor

35
推荐指数
2
解决办法
4万
查看次数

如何使用Moq对HtmlHelper进行单元测试?

有人可以告诉我如何使用Moq创建模拟HTML Helper吗?

文章有一篇文章的链接自称为说明这一点,但仅之后返回一个ASP.NET运行时错误链接

[编辑] 我问有关同一主题的一个更具体的问题在这里,但目前还没有得到任何回应.我认为它太具体了,所以我想我可以得到一个更一般的问题的更一般的答案,并修改它以满足我的要求.

谢谢

asp.net-mvc nunit unit-testing html-helper moq

34
推荐指数
3
解决办法
7556
查看次数

处理HTML.DropDownList Razor MVC中的onchange事件

onchange通过简单的HTML 处理具有选定值的事件,如下所示:

<select onchange="location = this.value;">
         <option value="/product/categoryByPage?PageSize=15" selected="selected">15</option>
         <option value="/product/categoryByPage?PageSize=30" selected="selected">30</option>
         <option value="/product/categoryByPage?PageSize=50" selected="selected">50</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这样做:

List<SelectListItem> items = new List<SelectListItem>();
string[] itemArray = {"15","30","50"};

for (int i = 0; i < itemArray.Count(); i++)
{
    items.Add(new SelectListItem 
    { 
        Text = itemArray[i], 
        Value = "/product/categoryByPage?pageSize=" + itemArray[i]
    });
}

ViewBag.CategoryID = items;
@Html.DropDownList("CategoryID")
Run Code Online (Sandbox Code Playgroud)

我该如何处理onchange@Html.DropDownList()

asp.net-mvc html-helper razor asp.net-mvc-3

33
推荐指数
2
解决办法
12万
查看次数

如何使@Html.EditorFor禁用

我的asp.net mvc web应用程序中有以下内容: -

<div><span class="f">Data Center Name</span> @Html.EditorFor(model => model.Switch.TMSRack.DataCenter.Name, new  { disabled = "disabled" })</div>
Run Code Online (Sandbox Code Playgroud)

但是这个领域不会被禁用,有人可以请求吗?谢谢

asp.net-mvc html-helper

33
推荐指数
4
解决办法
7万
查看次数

ASP.NET MVC 2 - Html.DropDownList与ViewModel的混淆

我对如何在ASP.NET MVC 2.0 R2上使用新的强类型Html.DropDownListFor帮助程序感到十分迷茫和困惑

在我写的视图中:

<%= Html.DropDownListFor(m => m.ParentCategory, new SelectList(Model.Categories, "CategoryId", "Name", Model.ParentCategory), "[ None ]")%>

<%= Html.ValidationMessageFor(m => m.ParentCategory)%>
Run Code Online (Sandbox Code Playgroud)

因此我的Model对象是:

public class CategoryForm : FormModelBase
{
    public CategoryForm()
    {
        Categories = new List<Category>();

        Categories.Add(new CategoryForm.Category() {
                           CategoryId = 1, 
                           Name = "CPUs" });
        Categories.Add(new CategoryForm.Category() { 
                           CategoryId = 2, 
                           Name = "Memory" });
        Categories.Add(new CategoryForm.Category() { 
                           CategoryId = 3, 
                           Name = "Hard drives" });
    }

    // ...other props, snip... //

    public Category ParentCategory { get; set; }

    public …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc html-helper viewmodel asp.net-mvc-2 drop-down-menu

32
推荐指数
3
解决办法
8万
查看次数

ASP.NET MVC 3自定义HTML助手 - 最佳实践/用途

MVC的新手,并且已经在asp.net网站上运行了教程.

它们包含一个自定义html帮助程序示例,用于截断表中显示的长文本.

只是想知道人们使用HTML帮助程序提出了哪些其他解决方案,以及在创建/使用它们时是否有任何最佳实践或要避免的事项.

作为一个例子,我正在考虑编写一个自定义助手来格式化我需要在各个地方显示的日期,但我现在担心可能有一个更优雅的解决方案(我的模型中的IE DataAnnotations)

有什么想法吗?

编辑:

我刚才想到的另一个潜在用途......字符串连接.自定义帮助程序可以将userID作为输入并返回用户全名...结果可以是(标题)(第一个)(中)(最后)的某种形式,具体取决于哪些字段可用.只是一个想法,我还没有尝试过这样的事情.

asp.net-mvc html-helper asp.net-mvc-3 asp.net-mvc-2

32
推荐指数
2
解决办法
3万
查看次数

32
推荐指数
3
解决办法
2万
查看次数