Nat*_*ate 73 c# asp.net-mvc asp.net-mvc-3
菜鸟问题.我有一个参数传递给创建视图.我需要设置一个默认值的字段名称.@ Html.EditorFor(model => model.Id)我需要设置名为Id的输入字段,其默认值通过actionlink传递给视图.
那么,这个输入字段 - @ Html.EditorFor(model => model.Id) - 如何设置为默认值.
以下工作会怎样?数字5是参数,我传入文本字段以设置默认值.
@Html.EditorFor(c => c.PropertyName, new { text = "5"; })
Run Code Online (Sandbox Code Playgroud)
Khe*_*pri 99
这是我发现的:
@Html.TextBoxFor(c => c.Propertyname, new { @Value = "5" })
Run Code Online (Sandbox Code Playgroud)
使用大写V,而不是小写v(假设值是通常在setter中使用的关键字)较低与较高值
@Html.EditorFor(c => c.Propertyname, new { @Value = "5" })
Run Code Online (Sandbox Code Playgroud)
不起作用
你的代码最终看起来像这样
<input Value="5" id="Propertyname" name="Propertyname" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)
价值与价值.不确定我是不是太喜欢那个.
为什么不检查控制器动作,如果proprety有一个值,如果它不是只在你的视图模型中将它设置为你的默认值并让它绑定,以避免所有这些猴子在视图中工作?
Sha*_*adi 60
干净的方法是通过控制器传递创建的实体的新实例:
//GET
public ActionResult CreateNewMyEntity(string default_value)
{
MyEntity newMyEntity = new MyEntity();
newMyEntity._propertyValue = default_value;
return View(newMyEntity);
}
Run Code Online (Sandbox Code Playgroud)
如果要通过ActionLink传递默认值
@Html.ActionLink("Create New", "CreateNewMyEntity", new { default_value = "5" })
Run Code Online (Sandbox Code Playgroud)
Muh*_*hid 14
更好的选择是在您的视图模型中执行此操作
public class MyVM
{
int _propertyValue = 5;//set Default Value here
public int PropertyName{
get
{
return _propertyValue;
}
set
{
_propertyValue = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你看来
@Html.EditorFor(c => c.PropertyName)
Run Code Online (Sandbox Code Playgroud)
将以你想要的方式工作(如果没有值默认值)