我不确定以前是否有人问过这个问题,但这里是。
我有一个 HTML 看起来像这样的 MVC 应用程序;
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<EnvironmentalVandals.Controllers.MonthlyItemsFormViewModel>" %>
我在控制器中有以下内容;
[Authorize]
public ActionResult Edit(int? id)
{ snip }
然后在提交按钮事件上;
[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public ActionResult Edit(FormCollection collection)
{
CalendarItem fvm = new CalendarItem();
UpdateModel(fvm);
}
如果我正在更新现有事件,我没有问题。如果我要添加新事件,则会收到 UpdateModel 无法更新模型的错误消息。
如果我从第一个 ActionResult 中删除“int?id”参数,则模型会根据新事件和现有事件进行更新。
当我编辑一个事件时,我使用以下 HTML;<%=Html.ActionLink("Edit", "Edit", new {id=Model.Event.id}) %>
当我创建一个新事件时,我使用<%=Html.ActionLink("Add event","Edit", "Calendar") %>
.
现在可以承认,我可能不应该对更新和创建使用相同的视图,并且可能应该重构为两个视图和一个 PartialView。
那么,这是解决方案还是我做错了什么?
提前致谢。
</griegs>