2014-03-24 27 views
0

我有一個創建操作和編輯操作在評論控制器。未將對象引用設置爲對象的實例。 〜期間@ Html.ActionLink

我創建ActionLink的是:

@Html.ActionLink("Create New", "Create", new { Id = Model.Id }) 

我創建行動:

[HttpGet] 
    public ActionResult Create(int Id) 
    { 
     return View(); 
    } 

我的編輯ActionLink的是:

@Html.ActionLink("Edit", "Edit", new { id=item.Id } 

我的編輯是:

[HttpGet] 
    public ActionResult Edit(int id) 
    { 
     var model = _db.Reviews.Find(id); 
     return View(model); 
    } 

在我編輯的看法,我有一個名爲「回到名單」的操作鏈接是:

@Html.ActionLink("Back to List", "Index", new {id = Model.RestaurantId}, null) 

它的工作原理,並把我帶回到我從哪裏來?

在我創建視圖,當我把相同的東西,我收到錯誤消息,在標題中。該ID不具有值或爲空。所以Model.RestaurantId不具有價值..

如果我硬編碼的值,它的工作原理,如:

@Html.ActionLink("Back to List", "Index", "Reviews", new { id = 1 }, null) 

我可能是什麼做錯了...

我基本上試圖按照斯科特艾倫斯MVC4教程。 我無法理解爲什麼會發生這種情況。我有一個評論控制器。有人能給我一些建議嗎?

謝謝。

回答

0

爲您的創建視圖創建視圖模型,並使用屬性來存儲源/父ID並根據需要使用該視圖。

public classs CreateReviewVM 
{ 
    public int SourceID { set;get;} 
} 

,並在你的GET操作

[HttpGet] 
public ActionResult Create(int Id) 
{ 
    var vm=new CreateReviewVM { SourceID=id }; 
    return View(vm); 
} 

和你創建視圖(create.cshtml),它是強類型的,以你的CreateReviewVM

@model CreateReviewVM 
@Html.ActionLink("Back to List", "Index", "Reviews", 
               new { id = Model.SourceID }, null) 
+0

好的...一個視圖模型。我會檢查它,並按照你的建議回到你身邊......但同時,你能告訴我爲什麼我在編輯視圖中的「返回列表」工作,但沒有在創建?非常感謝... – buzcrawl

0

事實證明,我可以使用:

@Html.ActionLink("Back to List", "Index", new { id=Request.Params["restaurantId"] }, null) 

它將填充該值。

相關問題