0
我试图弄清为什么EditorFor Caches为什么以及如何缓存信息。Html.EditorFor过程如何更改为模型
这是一个简单的程序,有一个两个textareas。一个用于输入,另一个用于输出。输出文本区域的原因是它使选择所有副本更容易。
我的代码很简单。首先我的操控者将一些默认值
public ActionResult MoveCss()
{
MoveCssIO model = new MoveCssIO(); ;
model.InputCss = "Fish";
return View(model);
}
然后我的模型踢,使输出输入
[Required(ErrorMessage="Please provide some text to transform")]
[DataType(DataType.MultilineText)]
public string InputCss { get; set; }
private string _OutputCss;
[DataType(DataType.MultilineText)]
public string OutputCss {
get
{
Transform();
return _OutputCss;
}
set
{
_OutputCss = value;
}
}
private void Transform()
{
if (!string.IsNullOrWhiteSpace(InputCss))
{
_OutputCss = InputCss.ToUpper();
}
}
的大写这正好我的看法
##
@Html.Encode(Model.OutputCss)
$$
@Html.DisplayFor(model => model.OutputCss)
&&
@Html.EditorFor(model => model.OutputCss)
%%
因此,在最初的负载我得到
##
FISH
$$
FISH
&&
<textarea class="text-box multi-line" id="OutputCss" name="OutputCss">
FISH</textarea>
%%
我然后使用InputCss(未显示)的编辑器来改变InputCss值火腿
[HttpPost]
public ActionResult MoveCss(MoveCssIO model)
{
return View(model);
}
这为我设置OutputCss和腌肉的页面做了重载(没有AJAX),但是当我得到的输出是
##
HAM
$$
HAM
&&
<textarea class="text-box multi-line" id="OutputCss" name="OutputCss">
FISH</textarea>
%%
我的问题是为什么Html.EditorFor中的值与Html.DisplayFor不同,我该如何解决这个问题?
更新:增加一点透明度
的
我以为他们只是从错误的模型状态使用,否则使用模型值。 – tvanfosson 2011-03-14 23:02:41
谢谢。我没有意识到ModelState具有“功能” – Jeff 2011-03-14 23:25:57
我添加了ModelState.Remove(“OutputCss”);这似乎修复了它 – Jeff 2011-03-14 23:26:57