これが以前に尋ねられたかどうかはわかりませんが、ここに行きます。
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") %>
。
確かに、更新と作成の両方に同じビューを使用するべきではなく、おそらく 2 つのビューと PartialView にリファクタリングする必要があります。
それで、それは解決策ですか、それとも私が間違っていることがありますか?
前もって感謝します。
</griegs>