2013-01-10 97 views
0

我創建了腳手架刪除視圖進行刪除,但不起作用。當調試時,我發現它沒有將正確的記錄ID傳遞給控制器​​。總是它傳遞0作爲ID並且結果是一個異常(ystem.NullReferenceException未被用戶代碼未處理Message = Object reference未設置爲對象的實例)。MVC 4腳手架刪除問題ID

但在視圖中提交按鈕顯示正確的URL的正確的ID。

控制器:

public ActionResult DeleteSubject(int id) 
    { 
     try 
     { 
      // returns the View 
     } 
     catch (Exception e) 
     { 
      // Handle and log the exception     
     } 
    } 


    [HttpPost] 
    public ActionResult DeleteSubject(SubjectModel subject) 
    { 
     try 
     { 
      // Call methods for delete 
     } 
     catch (Exception e) 
     { 
      // Handle and log the exception 
     } 
    } 

檢視:

@model LMS.Models.SubjectModel 

    // ... form elements go here 

    @using (Html.BeginForm()) { 
     <input type="submit" value="Delete" /> 
    } 

在調試[HttpPost]方法與斷點,通過該方法作爲參數取對象似乎不與值進行初始化。顯示0表示ID字段,null表示其他字段。

在重新創建視圖,重寫控制器方法,更改屬性等方面進行了工作,但仍然遇到問題。感謝您的意見。

感謝(用於創建,列表和編輯,都可以正常使用。BTW創建腳手架視圖),

Chatur

回答

0

當過帖子發到我注意到有id的形式= 「形式」總是有幫助的。

@using (Html.BeginForm("Create", "RunLogEntry", FormMethod.Post, new { id = "form", enctype = "multipart/form-data" })) 
    { 
0

在MVC的默認方式ID參數中的URL不會對身體過去了,這就是爲什麼它的空。

更改httpPost刪除爲;

public ActionResult DeleteSubject(int id, SubjectModel subject) 

還我注意到你有形式,我應該去裏面外面// ... form elements go here