发布后,我的数据丢失在我的自定义html助手中

时间:2015-03-23 17:58:34

标签: asp.net-mvc-4 html-helper

发布后,我的数据丢失在网页上。我在这里创建一个测试用例。

我的简单模型

  public class MyModals
    {
        public string content { get; set; }
    }

我的htmlhelper就像这样

 public static IHtmlString LineEdit<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper,
            Expression<Func<TModel, TProperty>> expression, string _Id, string _height = "250px")
        {
            var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
            var name = metadata.PropertyName;
            var content = metadata.Model as string;
            string txt =String.Format(""+
            " <textarea id= '{1}' name='{0}'>{2}</textarea>",name, _Id, content);
            return new MvcHtmlString(txt);
        }

我的表格是这样的

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    @Html.LineEdit(m => m.content, "txtarea1")

<input type="submit" value="Submit">
    <b>hjhh</b> @ViewData["con"] 
}

和我的控制器

private static string tt = "hello world";
public ActionResult Index()
{
    MyModals my = new MyModals() {content =tt};
    return View("Index",my);
}
[HttpPost]
public ActionResult Index( MyModals myModals)
{
    var   content =myModals.content;
    ViewData["con"] = content;
    tt = content;
    return View("Index");
}

按下提交按钮后,我可以在viewdata(@ViewData["con"])中查看我发布的数据,但是我无法看到内部文本区域。 当我将@Html.TextAreaFor(m => m.content)(工作正常)更改为  @Html.LineEdit(m => m.content, "txtarea1"),出现问题。

我不明白为什么会这样。我在做错了。

0 个答案:

没有答案