为什么我的列表 public function index(){
if($this->input->post()){
//set rules for form validation
if($this->form_validation->run() !== FALSE){
//then update
}
}
//your views, data or any other things you do
}
没有获得任何值?
我有另一个页面具有相同的逻辑,一切正常。
如果需要,我可以提供更多代码。
echo form_input('name', set_value('name'));
答案 0 :(得分:3)
抱歉,我对你的快照不够谨慎。您Model
是IEnumerable<UploadedFile>
的集合,因此确实需要[0]
才能获得第一个IEnumerable<UploadedFile>
。所以你需要做的是:
List<Upload.Models.UploadedFile> files = Model.ToList()[0].ToList();
或者你可以枚举像:
这样的文件@foreach (var item in Model.ToList()[0])
{
...
}
修改强>: 更好的方法是修改控制器,使其返回强类型模型,并摆脱不必要的嵌套List:
public ActionResult TestPDF(List<int> fileid)
{
var myModel = new List<UploadedFile>();
foreach (var id in fileid)
{
myModel.Add(db.UploadedFiles.Find(id));
}
return View(myModel);
}
然后,您可以将视图中的@model
修改为
@model List<Upload.Models.UploadedFile>
按
循环文件@foreach (var item in Model)
{
...
}
编辑2 假设您正在使用Entity Framework,您可以进一步优化控制器:
public ActionResult TestPDF(List<int> fileid)
{
List<Upload.Models.UploadedFile> myModel = fileid == null ? new List<Upload.Models.UploadedFile>() : db.UploadedFiles.Where(o => fileid.Contains(o.ID)).ToList();
return View(myModel);
}