发布后,我的数据丢失在网页上。我在这里创建一个测试用例。
我的简单模型
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")
,出现问题。
我不明白为什么会这样。我在做错了。