Html For Helpers可能有空值,例如Html.TextBoxFor()?

时间:2010-05-16 02:57:58

标签: c# .net asp.net-mvc-2

是否有必要在asp.net中为helper制作一个html mvc 2.0的默认值为“empty string”

就像我这样做

Html.TextBoxFor( u => u.ProductName)

将呈现为

<input id ="ProductName" name="ProdcutName" type="text" value="Jim" />

现在我不希望文本框显示jim。我希望它什么都不显示。

<input id ="ProductName" name="ProdcutName" type="text" value="" />

我试图这样做

 Html.TextBoxFor( u => u.ProductName, new { @value = " "})

但这似乎什么都不做。那我怎么能这样做呢。我希望你能做到这样的事情,否则我认为这些新助手有一个很大的缺陷,因为现在我需要使用javascript来删除它们,因为我几乎不想在文本框中使用默认值,特别是当我在文本框旁边有一个标签时说它是什么。

修改

我发现如果我想将它设置为空字符串,我必须在viewmodel中执行此操作。什么是好的,但仍有一个问题。在我的示例中,ProductName是字符串类型。但如果它是一个int,那么它会将默认值显示为0,这是我不想要的。

所以你当然可以将int设置为空字符串。因此,要将它变为空字符串,您需要将该类型更改为字符串,这有点糟糕。

有人知道这个吗?

修改2

助手的单选按钮似乎也没有生成“id”。你怎么设置一个?

2 个答案:

答案 0 :(得分:1)

对于非可空类型,您可以使用类似

的内容
  • INT?
  • 可空

然后你可以将它设置为null。

是否只要将一个属性设置为null或全部属性?

如果你想让所有的属性都是空白的,那么最好只创建一个新的ViewModel,然后只指定Id,同时保留其余的空/ null。

答案 1 :(得分:0)

无论值是什么,您是否要显示null?我不明白。

对于int,使用可空的int - int?

对于单选按钮使用

<%= Html.RadioButton("Hello", true, new { id = "rbHello" })%>