C# 在ASP.NET MVC中扩展模板的HiddenFor
我认为C# 在ASP.NET MVC中扩展模板的HiddenFor,c#,asp.net-mvc-4,mvc-editor-templates,C#,Asp.net Mvc 4,Mvc Editor Templates,我认为Html.HiddenFor可以使用Html.DisplayFor或Html.EditorFor等模板。不幸的是,该方法不像其他方法那样接受模板名 我知道,解决方法是使用DisplayFor/EditorFor模板,该模板具有hiddenfor。但是我想了解如何扩展Html.HiddenFor方法。有人吗 关于存在接受附加参数的重载-htmlAttributes。您可以使用它向结果标记添加一些属性 第二种方法是在其中一个文件夹中创建razor局部视图 ~/Areas/AreaName/Vi
Html.HiddenFor
可以使用Html.DisplayFor
或Html.EditorFor
等模板。不幸的是,该方法不像其他方法那样接受模板名
我知道,解决方法是使用DisplayFor/EditorFor模板,该模板具有hiddenfor。但是我想了解如何扩展Html.HiddenFor
方法。有人吗
关于存在接受附加参数的重载-htmlAttributes
。您可以使用它向结果标记添加一些属性
第二种方法是在其中一个文件夹中创建razor局部视图
~/Areas/AreaName/Views/ControllerName/DisplayTemplates/TemplateName.cshtml
~/Areas/AreaName/Views/Shared/DisplayTemplates/TemplateName.cshtml
~/Views/ControllerName/DisplayTemplates/TemplateName.cshtml
~/Views/Shared/DisplayTemplates/TemplateName.cshtml
使用名称HiddenInput.cshtml
似乎被错误的类比误导了HiddenFor
与
标记完全对应。就像TextBoxFor
,CheckBoxFor
等。这些方法不是为使用模板而设计的<另一侧的code>DisplayFor
/EditorFor
是专门创建的,用于项目中定义的模板。因此,你所要求的是不可能开箱即用的
但是,您始终可以使用您可能需要的任何参数集和逻辑为
HiddenFor
定义自己的重载。以下是您要做的,您可以将其创建为一个编辑器模板,因为,HiddenFor
相当于TextBoxFor
和CheckboxFor
等辅助方法
您可能也希望有一个真正的编辑器,所以将真正的编辑器放在~/Shared/EditorTemplates
下。我们将把我们的“隐藏编辑器”放在您希望使用它的控制器下
~/Views/ControllerName/EditorTemplates/ModelName.cshtml
假设我们有一个人
模型
public class Person
{
public string First { get; set; }
public string Last { get; set; }
}
我们将创建一个局部视图
@Model Person
@Html.HiddenFor(p => p.First);
@Html.HiddenFor(p => p.Last);
然后我们假设我们有一个模型,其中包含一个人
作为属性。从我们的主要观点来看,我们这样称呼我们的“隐藏编辑器”
@Model Foo
@Html.EditorFor(f => f.Person)
容易的豌豆柠檬挤压。有点老套,但很有魅力 谢谢你告诉我怎么做,但正如我在问题中所说的,我已经知道这是一个可能的解决方法:-)这不是为你@float。这是为了拯救下一个像我这样的家伙,他在谷歌上发现这个问答时间太长了。