Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 MVC3将消息从一个控制器传递到另一个视图和/或控制器_Asp.net Mvc 3_Controller_Message - Fatal编程技术网

Asp.net mvc 3 MVC3将消息从一个控制器传递到另一个视图和/或控制器

Asp.net mvc 3 MVC3将消息从一个控制器传递到另一个视图和/或控制器,asp.net-mvc-3,controller,message,Asp.net Mvc 3,Controller,Message,我有一个MVC3 C#.Net web应用程序。具有从Excel导入功能的。此功能在速率控制器的导入方法中执行。它在“速率/导入”视图中查看。导入时,有些行成功,有些行不成功。我正在将错误收集到字符串[]数组中。如果成功导入一行或多行,则认为导入成功,因此应用程序将导航回“建议编辑”视图。我想将信息性错误传递回“建议编辑”视图以供显示。任何IDE如何做到这一点?有几种方法 TempData 这在您的控制器中可用。TempData在单个重定向中保持不变 public ActionResult Pr

我有一个MVC3 C#.Net web应用程序。具有从Excel导入功能的。此功能在速率控制器的导入方法中执行。它在“速率/导入”视图中查看。导入时,有些行成功,有些行不成功。我正在将错误收集到字符串[]数组中。如果成功导入一行或多行,则认为导入成功,因此应用程序将导航回“建议编辑”视图。我想将信息性错误传递回“建议编辑”视图以供显示。任何IDE如何做到这一点?

有几种方法

TempData

这在您的控制器中可用。TempData在单个重定向中保持不变

public ActionResult Process()
{
    // ... Process your rows, get array of errors back ...

    TempData["errors"] = errors;
    return RedirectToAction("Edit");
}

public ActionResult Edit()
{
    var errors = (IEnumerable<string>)TempData["errors"];  // Get the errors back.
    return View(errors);  // Pass into the view
}
public ActionResult Process()
{
    // ... Process your rows, get array of errors back ...

    for(var i = 0; i < errors.Length; i++)
    {
        ModelState.AddModelError("row" + i, errors[i]);
    }

    // Can't redirect here - ModelState doesn't persist.
    return View("Edit");
}
这将呈现此html。该类是MVC设置的默认类

<div class="validation-summary-errors">
    <span>The following row errors occured:</span>
    <ul>
        <li>...Error 1...</li>
        ... Other errors ...
    </ul>
</div>

出现以下行错误:
  • …错误1
  • ... 其他错误。。。

有几种方法

TempData

这在您的控制器中可用。TempData在单个重定向中保持不变

public ActionResult Process()
{
    // ... Process your rows, get array of errors back ...

    TempData["errors"] = errors;
    return RedirectToAction("Edit");
}

public ActionResult Edit()
{
    var errors = (IEnumerable<string>)TempData["errors"];  // Get the errors back.
    return View(errors);  // Pass into the view
}
public ActionResult Process()
{
    // ... Process your rows, get array of errors back ...

    for(var i = 0; i < errors.Length; i++)
    {
        ModelState.AddModelError("row" + i, errors[i]);
    }

    // Can't redirect here - ModelState doesn't persist.
    return View("Edit");
}
这将呈现此html。该类是MVC设置的默认类

<div class="validation-summary-errors">
    <span>The following row errors occured:</span>
    <ul>
        <li>...Error 1...</li>
        ... Other errors ...
    </ul>
</div>

出现以下行错误:
  • …错误1
  • ... 其他错误。。。

通过“应用程序导航回提案编辑”您的意思是在提交表单后进行重定向吗?如果是这样,您将能够存储信息的唯一位置是数据库(将ID传递给另一个控制器以查找字符串)、会话或cookie中。ViewBag/ViewData生命周期以请求的生命周期结束。重定向会从浏览器创建一个新的“请求”。所谓“应用程序导航回建议编辑”是指在提交表单后进行重定向吗?如果是这样,您将能够存储信息的唯一位置是数据库(将ID传递给另一个控制器以查找字符串)、会话或cookie中。ViewBag/ViewData生命周期以请求的生命周期结束。重定向会从浏览器创建一个新的“请求”。@宽大……非常感谢。好东西!关于ModelState的问题…ModelState如何显示错误?编辑视图中是否需要更多代码?Thanks@MikeTWebb是的,最后一行,
@Html.ValidationSummary(“发生了以下行错误:”)显示ModelState中的任何错误。更新了我的答案,结果是什么。@宽大……非常感谢。好东西!关于ModelState的问题…ModelState如何显示错误?编辑视图中是否需要更多代码?Thanks@MikeTWebb是的,最后一行,
@Html.ValidationSummary(“发生了以下行错误:”)显示ModelState中的任何错误。用呈现出来的内容更新了我的答案。