0
我有一个类型列表MVC5编辑模板列表<string>
我想创建这种类型的自定义编辑器的公共财产的典范。
我想要的是每个行都是List中的字符串的TextArea。
public List<string> myListOfString {get;set;}
只是不知道从哪里开始...
这似乎很简单,但无法弄清楚如何做到这一点。
我有一个类型列表MVC5编辑模板列表<string>
我想创建这种类型的自定义编辑器的公共财产的典范。
我想要的是每个行都是List中的字符串的TextArea。
public List<string> myListOfString {get;set;}
只是不知道从哪里开始...
这似乎很简单,但无法弄清楚如何做到这一点。
您可以使用UIHint属性并指向自定义EditorTemplate。编辑器模板的工作方式与视图类似,因此您的模型将是List。然而,我不认为这是一条好路径,因为您需要将列表转换为文本,并且这会将逻辑添加到表示层。
我会在这种情况下做的是创建一个新的ViewModel,其中你的列表是一个字符串。让控制器处理从/到String/List的转换。
public class Classroom
{
public int ClassNumber { get; set; }
public string Teacher { get; set; }
public List<string> Students { get; set; }
...
}
public class ClassroomViewModel
{
public int ClassNumber { get; set; }
[DataType(DataType.MultilineText)]
public string StudentsNames { get; set; }
...
}
public class SchoolController : Controller
{
public ActionResult SomeAction(int classroomId)
{
Classroom model = ... // Get the original model from somewhere
var viewModel = new ClassroomViewModel();
viewModel.ClassNumber = model.ClassNumber;
foreach (string item in model.Students)
{
viewModel.StudentNames += item + "\n";
}
return View(viewModel);
}
}
'