从mvc3中的表单发布获取HtmlString值

时间:2011-07-28 22:35:11

标签: c# asp.net-mvc-3 webforms razor

我的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。

3 个答案:

答案 0 :(得分:1)

HtmlString只应在视图上呈现某些数据时用于自定义帮助程序,但不要在视图模型上使用此类型的属性。它根本没有意义。然后在视图内部根据您是否要编码此字符串属性,只需使用:

@Model.Foo

@Html.Raw(Model.Foo)

答案 1 :(得分:1)

HtmlString只是一个普通字符串的包装器,用于表示已经过Html编码的字符串。因此,除非你编写一个通过它的构造函数HtmlString(string value)创建HtmlString对象的自定义绑定器,否则你将得到一个空值。

ToHtmlString()方法只返回传入的字符串,至少在.NET 4实现中。

所以是的,只需使用字符串。它在功能上是一样的。

答案 2 :(得分:0)

请勿使用HtmlString。只需使用string.

即可