我有类似的东西:
<input type="text" name="TerrMng" id="TerrMng"/>
在HTML中。使用@ Html.Display相当于上面的内容?
我尝试过使用:@Html.Display("TerrMng", TerrMng)
但没有成功。请注意,我喜欢使用@ Html.Display但不确定如何翻译ID值以便显示。
如果您只是想显示数据而不允许用户编辑信息,这应该可以解决问题。
@Html.DisplayFor(m => m.TerrMng);
编辑:
what-is-the-html-displayfor-syntax-for是stackoverflow上的另一个问题,它可能会为您提供更多指导。
编辑:
PageLoad上不存在TerrMng,因此您无法以这种方式使用Html.Display。您需要创建它并使用从jQuery接收的值填充其值。在这种情况下,您必须执行以下操作:
HTML
@Html.Display("TerrMng"); // This creates the label with an id of TerrMng
jQuery的
$("#TerrMng").val(TerrMng); // This puts the value of the javascript variable into the label
Display
方法不用于创建输入框。你想要使用:
@Html.TextBoxFor(m => m.TerrMng);
或templated helper方法:
@Html.EditorFor(m => m.TerrMng);
我假设您要使用模型绑定。如果没有,如果您真的只想使用帮助程序来创建输入标记,请使用:
@Html.TextBox("TerrMng");
这将发送给客户:
<input id="TerrMng" type="text" value="" name="TerrMng">
如果model.TerrMng是“”或String.Empty
,上面的前两种方法将产生完全相同的html。如果由于某种原因你不想要value属性,你需要自己输入。
你可以尝试一下这个。这不是确切的,但你可以得到一些想法。
@Html.TextBoxFor(yourmodel => model.yourModelFieldname, null)
当你的模型在编译时不知道,或者你喜欢使用字符串而不是强类型时,使用@Html.Display()
而不是@Html.DisplayFor()
。例如,这两个是等价的(假设您的模型是某个类):
@Html.DisplayFor(m => m.MyProperty)
和
@Html.Display("MyProperty")
但Display()方法的另一个很酷的功能是它也可以在ViewData中进行查找,而不仅仅是在Model类中。例如,这是一种在随机对象上显示属性的HTML的方法,因为我们知道它有一个名为“Blah”的属性(对象的类型并不重要):
@{ ViewData["itsawonderfullife"] = SomeObject; }
<div>@Html.Display("itsawonderfullife.Blah")</div>
这样,我们告诉HtmlHelper
调查ViewData
,而不是我们的Model
,并显示给定Blah
的属性SomeObject
。