gpt4 book ai didi

c# - Controller 返回神秘 View

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:19 24 4
gpt4 key购买 nike

我在 SampleController 中有以下 Details 操作:

public ActionResult Details(int sampleNumber)
{
var sample = (Sample)Session["sample"];
if (sample == null)
{
var pallet = (Pallet)Session["pallet"];

sample = pallet.Samples.First(s
=> s.SampleNo.Equals(sampleNumber));

if (sample.Defects.Count < 1) // Postback issue?
{
var access = new Access();

sample.Defects = access.GetDefects(pallet.Grv.GRVNo,
pallet.PalletSeq, sampleNumber);
sample.GetImagePaths();
sample.Pallet = pallet;

Session["sample"] = sample;
}
}

return View(sample);
}

这个更新 Action :

public ActionResult Update(IEnumerable<HttpPostedFileBase> files, Sample sample)
{
var pallet = (Pallet)Session["pallet"];

sample.Pallet = pallet;
sample.SaveImages(files);

access.UpdateSample(sample);
access.UpdateDefects(sample);

Session["sample"] = sample;

return View("Details", sample);
}

我正在尝试调试问题,但不知何故 return View("Details", sample); 行没有调用上面的 Details 操作(断点确实不要停止代码)。

它确实返回了所选示例 的 View ,但是Details 中的所有操作都没有发生。

我尝试将 return 语句更改为

return View("Details", sample.SampleNo);

要匹配 Details 的签名,但我得到:

The model item passed into the dictionary is of type 'System.Int32', but this dictionary requires a model item of type 'MVCQCPage.Models.Sample'.

这怎么可能? Details 操作不要求 Sample 参数,那么为什么这不只是返回 Details 并传入 sampleNo (int) 值?

请注意,上面的 Details 操作是 SampleController 中该名称的唯一方法。

最佳答案

您需要执行RedirectToAction

public ActionResult Update(IEnumerable<HttpPostedFileBase> files, Sample sample)
{
var pallet = (Pallet)Session["pallet"];

sample.Pallet = pallet;
sample.SaveImages(files);

access.UpdateSample(sample);
access.UpdateDefects(sample);

Session["sample"] = sample;

return RedirectToAction("Details", sample.SampleNo);
}

请查看https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.118).aspx

关于c# - Controller 返回神秘 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43891560/

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