生成没有完整路径的导航 ID 属性
generate the id of a navigation property without the full path
我有一个 ASP.NET 5 RC1 项目,代码如下:
型号:
public class MyClass
{
public int Id { get; set; }
public NavigationClass NavigationClass { get; set; }
}
public class NavigationClass
{
public int Id { get; set; }
public in FieldId2 FieldId2 { get; set; }
}
查看
@model MyClass
@Html.DropDownListFor(model => model.NavigationClass.FieldId2,Viewbag["MySelectList"])
呈现为
<select id="MyClass_NavigationClass_FieldId2" name="MyClass_NavigationClass_FieldId2">
如何在没有完整路径 class 名称和导航 class 名称的情况下呈现?
即
<select id="FieldId2" name="FieldId2">
或
<select id="FieldId2" name="MyClass_NavigationClass_FieldId2">
仍然使用 lambda 表达式
我知道我可以在视图中对 id 进行硬编码,但我仍然想使用
DropDownListFor
例如
@Html.DropDownListFor(model => model.NavigationClass.FieldId2,Viewbag["MySelectList"])
或类似的东西
首先你的DropDownListFor()
方法没有生成
<select id="MyClass_NavigationClass_FieldId2" name="MyClass_NavigationClass_FieldId2">
居然在发电
<select id="NavigationClass_FieldId2" name="NavigationClass.FieldId2">
并且您不想更改 name
属性,因为它不会在您提交表单时绑定到您的模型。
但是,您可以通过使用接受 htmlAttributes
的重载来更改 id
属性以在 jQuery 函数中使用
@Html.DropDownListFor(m => m.NavigationClass.FieldId2, Viewbag["MySelectList"], new { id = "FieldId2" })
这将生成
<select id="FieldId2" name="NavigationClass.FieldId2">
我有一个 ASP.NET 5 RC1 项目,代码如下:
型号:
public class MyClass
{
public int Id { get; set; }
public NavigationClass NavigationClass { get; set; }
}
public class NavigationClass
{
public int Id { get; set; }
public in FieldId2 FieldId2 { get; set; }
}
查看
@model MyClass
@Html.DropDownListFor(model => model.NavigationClass.FieldId2,Viewbag["MySelectList"])
呈现为
<select id="MyClass_NavigationClass_FieldId2" name="MyClass_NavigationClass_FieldId2">
如何在没有完整路径 class 名称和导航 class 名称的情况下呈现? 即
<select id="FieldId2" name="FieldId2">
或
<select id="FieldId2" name="MyClass_NavigationClass_FieldId2">
仍然使用 lambda 表达式
我知道我可以在视图中对 id 进行硬编码,但我仍然想使用
DropDownListFor
例如
@Html.DropDownListFor(model => model.NavigationClass.FieldId2,Viewbag["MySelectList"])
或类似的东西
首先你的DropDownListFor()
方法没有生成
<select id="MyClass_NavigationClass_FieldId2" name="MyClass_NavigationClass_FieldId2">
居然在发电
<select id="NavigationClass_FieldId2" name="NavigationClass.FieldId2">
并且您不想更改 name
属性,因为它不会在您提交表单时绑定到您的模型。
但是,您可以通过使用接受 htmlAttributes
id
属性以在 jQuery 函数中使用
@Html.DropDownListFor(m => m.NavigationClass.FieldId2, Viewbag["MySelectList"], new { id = "FieldId2" })
这将生成
<select id="FieldId2" name="NavigationClass.FieldId2">