0

프로젝트에 대한 null 항목을 포함하고 있는데, 문제가 있습니다.Fluent Nhibernate 그는 파라미터 사전에 파라미터

는 "매개 변수 사전이 아닌 nullable 형식 'BlogNewCMS.Controllers.HomeController'의 방법 '선택 System.Int32' '무효 삭제 (INT32)'. 선택적 매개 변수는 반드시의 매개 변수 '아이디'에 대한 널 항목이 포함 참조 유형, null 입력 가능 또는 선택적 매개 변수로 선언 할 수 있습니다. 매개 변수 :

컨트롤러;

[HttpPost] 
    public void Delete(int Id) 
    { 

     using (var session = FluentNHibernateConnectingAdmin.OpenSession()) 
     { 

      using (var transaction = session.BeginTransaction()) 
      { 
       var article = session.QueryOver<Article>().Where(x => x.Id == 3).SingleOrDefault(); 

       session.Delete(article); 

       transaction.Commit(); 
      } 
     } 
    } 

페이지;

     @foreach (var active in Model) 
        { 


         using (Html.BeginForm("Delete", "home", FormMethod.Post)) 
         { 

          <tr role="row" class="gradeA odd"> 
           <td class="sorting_1">@active.UserID</td> 
           <td>@active.Topic</td> 
           <td>@active.TopicDetail</td> 
           <td class="text-center"> 
            <input type="submit" class="btn btn-danger" name="name" value="Sil" /> 

           </td> 
          </tr> 

        } 
         } 

라우팅;

  routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 


     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

답변

0

사용자의 삭제 방법에는 int 유형의 Id 매개 변수가 필요합니다. 그러나 양식에는 양식이 없으므로 양식을 제출할 때 양식을 전달하지 않습니다.

또한 당신이 아마 응답을 반환 있도록 삭제 방법에 반환 유형을 추가 할 "Id"

using (Html.BeginForm("Delete", "home", FormMethod.Post)) 
{ 
    <tr role="row" class="gradeA odd"> 
      <td class="sorting_1">@active.UserID</td> 
      <td>@active.Topic</td> 
      <td>@active.TopicDetail</td> 
      <td class="text-center"> 
       <input type="submit" class="btn btn-danger" name="name" value="Sil" /> 
       <input type="hidden" name="Id" value="@active.Id" /> 
      </td> 
    </tr> 
} 

로 설정 이름 속성 값을 폼에 하나 개의 입력 필드를 추가합니다.

public ActionResult Delete(int id) 
{ 
    // to do : Delete 
    return RedirectToAction("DeletedSuccessfully"); 
    // Assuming you have an action method called DeletedSuccessfully exist 
    // which shows the "Success message to user 
}