2012-11-21 2 views
0

내가 MVC 꽤 새로운 해요 삭제하고 나는 NerdDinner의 코드를 찾고 있어요Nerddinner

보기 :

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NerdDinner.Models.Dinner>" %> 

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server"> 
    Delete Confirmation: <%:Model.Title %> 
</asp:Content> 

<asp:Content ID="Main" ContentPlaceHolderID="MainContent" runat="server"> 

    <h2> 
     Delete Confirmation 
    </h2> 

    <div> 
     <p>Please confirm you want to cancel the dinner titled: 
     <i> <%:Model.Title %>? </i> </p> 
    </div> 

    <% using (Html.BeginForm()) { %> 

     <input name="confirmButton" type="submit" value="Delete" />   

    <% } %> 

</asp:Content> 

컨트롤러 :

[HttpPost, Authorize] 
    public ActionResult Delete(int id, string confirmButton) { 

     Dinner dinner = dinnerRepository.GetDinner(id); 

     if (dinner == null) 
      return View("NotFound"); 

     if (!dinner.IsHostedBy(User.Identity.Name)) 
      return View("InvalidOwner"); 

     dinnerRepository.Delete(dinner); 
     dinnerRepository.Save(); 

     return View("Deleted"); 
    } 

컨트롤러는 어떻게 나올까요 삭제할 항목의 ID? 보기에 컨트롤러에 전달할 ID가 포함되어 있지 않은 것 같습니다.

+1

면도칼로 nerddinner를보세요. – DarthVader

답변

0

using (Html.BeginForm())은 속성이 기본적으로 현재 URI 인 <form> 요소를 렌더링합니다.

즉, 현재 /Dinner/Delete/5 인 경우 양식이 해당 URI에 게시되고 일반 모델 바인딩이 실행되어 5{id} 경로 매개 변수로 매핑합니다.

관련 문제