【发布时间】:2015-06-17 20:04:13
【问题描述】:
我创建了一个编辑器模板来显示表单中包含的文本框。
@model WebApplication1.Models.PersonViewModel
<input type="text" class="form-control" name="@ViewData.TemplateInfo.HtmlFieldPrefix" value=""/>
我只是想在用于收集此模型数据的所有输入文本框中包含“表单控件”类。
public class PersonViewModel
{
[UIHint("_TextFormControl")]
public string FirstName { get; set; }
[UIHint("_TextFormControl")]
public string LastName { get; set; }
public int Age { get; set; }
}
当表单开始为空白时,这很有效,但是,当我将模板用于预先填充了数据的表单时,例如当我想编辑现有模型时,我收到错误消息:“模型项传入该字典的类型为“System.String”,但该字典需要一个“WebApplication1.Models.PersonViewModel”类型的模型项。”
这是我的控制器:
// GET: /Person/Edit/5
[HttpGet]
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Person person = db.Persons.Find(id);
if (person == null)
{
return HttpNotFound();
}
return View(person);
}
如何允许此编辑器用于现有数据以及新表单?
【问题讨论】:
标签: c# asp.net asp.net-mvc forms razor