我必须显示的文字在我的文本框中正常显示,并按照我的要求展示。但问题是,当我需要更新文本时,它告诉我没有任何东西,所以它告诉我它有一个空值。
它存在于带有文本的数据库中。
index.cshtml
@model MVCOrdklar2015.Models.Admin.IndholdViewModel
@using (Html.BeginForm("index", "AdminIndhold", FormMethod.Post))
{
<fieldset>
<div class="form-group">
<div class="col-xs-12">
@Html.TextAreaFor(i => i.IndholdText, new
{
@class = "ckeditor"
})
</div>
</div>
</fieldset>
<div class="form-group form-actions">
<div class="col-xs-12">
<button type="submit" class="btn btn-effect-ripple btn-primary">Opdater</button>
</div>
</div>
}
型号:
namespace MVCOrdklar2015.Models.Admin
{
public class IndholdViewModel
{
public HtmlString IndholdText
{
get; set;
}
}
}
控制器:
[HttpPost]
[ValidateInput(false)]
public ActionResult Index(IndholdViewModel ModelInput)
{
if (!ModelState.IsValid)
{
DataLinqDB db = new DataLinqDB();
var forsideindhold = db.forsides.FirstOrDefault(i => i.Id == 1);
if (forsideindhold != null)
{
//error here
forsideindhold.tekst = new HtmlString(ModelInput.IndholdText.ToString()).ToString();
db.SubmitChanges();
return RedirectToAction("index/Opdater");
}
}
return View();
}
答案 0 :(得分:2)
如果没有为其注册自定义模型绑定器,默认的模型绑定器不会绑定HtmlString
属性。
尝试使用string
结合[AllowHtml]
属性代替:
[AllowHtml]
public string IndholdText
{
get; set;
}
在你的控制器中:
forsideindhold.tekst = ModelInput.IndholdText;
请参阅MSDN