所以....我的控制器中有一个动作,它基本上复制当前模型并基于该副本返回一个新视图。为了通知用户这是一个副本,我通过 viewbag 附加一条消息,说明它是一个副本。一切似乎都在工作,直到我注意到渲染新视图时使用的不是副本,而是原始视图,但另一方面,视图包已更新,因此显示了消息。
嗯,不知道这是否可以理解,所以我也会尝试用一些伪代码来说明我的意思:
模型
public class Model{
[ScaffoldColumn(false)]
[HiddenInput(DisplayValue = false)]
public Guid Id { get; set; }
public string Name { get; set; }
}
看法
<input type="submit" name="Copy" value="@_("Copy")"/>
控制器
public ActionResult Copy(model) {
ViewBag.Message = _("This is a copy.");
var clone = model.Clone();
return View("Index", clone);
}
我很难理解这一点,因此非常感谢任何帮助/提示/指针。
哦,我已经多次单步执行代码,以确保克隆确实是克隆。唯一区分它们的是 Id 属性,这是控制器中的新属性,但是当视图呈现时,它又回到了旧的。