gpt4 book ai didi

c# - MVC - 使用 RedirectToAction() 传递数据

转载 作者:IT王子 更新时间:2023-10-29 03:45:45 27 4
gpt4 key购买 nike

我想获取在 MVC 用户表单中输入的数据并将其显示在不同的 View 中。

该类具有以下私有(private)变量:

IList<string> _pagecontent = new List<string>();

以下操作接受一个 FormCollection 对象,对其进行验证,并将其作为列表传递给“预览” View :

[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);
}

预览 View 具有以下用于传递强类型对象列表的页面指令:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Template.Master" Inherits="System.Web.Mvc.ViewPage<List<string>>" %>

我希望能够使用模型对象来获取我的数据,但是我不能。在下一行,我得到一个 error index out of bounds 异常,说明索引必须是非负的并且小于集合的大小:

<% if (Model[0].ToString() == "0") { %>

并且一些奇怪的参数被添加到 URL 中,因为它解析为http://localhost:1894/Admin/Preview?Capacity=4&Count=3

所以我有两个问题:

  1. 当我调用 RedirectToAction 并将我的列表传递给它时,为什么在 View 的模型对象中无法访问它?
  2. 做我想做的事情的正确方法是什么,即将一组字符串传递给 View 以在那里显示?

最佳答案

尝试使用 TempData。它就像一个单次 session 对象。你将你想要的值放入 TempData,立即重定向并将它们取出。这里有一篇很好的文章:http://blogs.teamb.com/craigstuntz/2009/01/23/37947/

关于c# - MVC - 使用 RedirectToAction() 传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/672143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com