我想获取在 MVC 用户表单中输入的数据并将其显示在不同的视图中。
该类具有以下私有变量:
IList<string> _pagecontent = new List<string>();
以下操作接受 FormCollection 对象,对其进行验证,并将其作为列表传递给“预览”视图:
[Authorize(Roles = "Admins")]
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateContent(FormCollection collection)
{
if (ModelState.IsValid)
{
string PageToInsert = collection["PageToInsert"];
string PageHeader = collection["PageHeader"];
string PageBody = collection["PageBody"];
//validate, excluded...
_pagecontent.Add(PageToInsert);
_pagecontent.Add(PageHeader);
_pagecontent.Add(PageBody);
}
return RedirectToAction("Preview", _pagecontent);
}
预览视图具有以下用于传递强类型对象列表的页面指令:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Template.Master" Inherits="System.Web.Mvc.ViewPage<List<string>>" %>
我希望能够使用 Model 对象来获取我的数据,但是我不能。在下一行,我得到一个error index out of bounds
异常,指出索引必须是非负的并且小于集合的大小:
<% if (Model[0].ToString() == "0") { %>
并且在 URL 中添加了一些奇怪的参数,因为它解析为
http://localhost:1894/Admin/Preview?Capacity=4&Count=3
所以我有两个问题:
- 当我调用 RedirectToAction 并将它传递给我的列表时,为什么它在视图的模型对象中无法访问?
- 做我想做的事情的正确方法是什么,即将字符串集合传递给视图以在那里显示?