我的aspnet mvc3项目中有一个剃刀视图中的表单。 该表单提交给控制器操作,该操作接收其中一个属性为HtmlString类型的Custom对象。 该属性在表单提交时带有null,如果属性是string类型,则该值是用户写入的值。 当属性属于该类型时,如何获得此值?
谢谢!
编辑:表单是一个创建帖子..我的意思是这样的:
<form action="@Url.Action("SaveNote", "Application")" method="post" class="note-form" style="display:none">
<fieldset>
<div class="input_item">
<div class="label">
<input type="hidden" name="urlRedirect" value="@Model.UrlRedirect" />
<select name="IsPrivate">
<option value="False">Public</option>
<option value="True">Private</option>
</select>
</div>
<div class="input">
<textarea name="Body" style="width:290px; height:90px"></textarea>
</div>
<button class="link" type="submit" name="addnote" value="0" >save</button>
</div>
</fieldset>
</form>
Body是HtmlString参数,该操作为null。
答案 0 :(得分:1)
HtmlString
只应在视图上呈现某些数据时用于自定义帮助程序,但不要在视图模型上使用此类型的属性。它根本没有意义。然后在视图内部根据您是否要编码此字符串属性,只需使用:
@Model.Foo
或
@Html.Raw(Model.Foo)
答案 1 :(得分:1)
HtmlString
只是一个普通字符串的包装器,用于表示已经过Html编码的字符串。因此,除非你编写一个通过它的构造函数HtmlString(string value)
创建HtmlString对象的自定义绑定器,否则你将得到一个空值。
ToHtmlString()
方法只返回传入的字符串,至少在.NET 4实现中。
所以是的,只需使用字符串。它在功能上是一样的。
答案 2 :(得分:0)
请勿使用HtmlString
。只需使用string.