2012-03-20 40 views
0

我學習.Net MVC並與僱員建立了一個列表。現在我想鏈接到一個視圖「CreateEdit」,我可以在其中創建新員工或編輯現有員工。.net mvc 3:CreateEdit視圖不能正常工作

@model IEnumerable<MvcTest1.Domain.Model.Employee> 

<html> 

<head> 
<title>EmployeeView</title> 
</head> 

<body> 
<p> 
    @Html.ActionLink("New Employee", "CreateEdit") 
</p> 
<table> 

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.ActionLink("Edit", "CreateEdit", new { id = item.Id }) 
     </td> 
    </tr> 
} 

</table> 

我有我的控制器的方法來處理鏈接:

public ActionResult CreateEdit(int? employeeId) 
{ 
    if (employeeId is Int32) 
    { 
      int id = (Int32)employeeId; 
      Employee e = er.GetById(id); 
      return View(e); 
    } 

    else return View(); 

} 

但僱員總是空,即使我點擊鏈接「編輯」。

回答

0

當您創建鏈接時,您將ID傳遞爲id。 然後在您的視圖中您將id的名稱設置爲'employeeId'。 他們應該是一樣的。

0

你可以在這裏做2件事之一。讓你的helper方法代碼是:

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

..和然後改變你的操作方法是這樣的:

public ActionResult CreateEdit(int id) 
{ 
    // Do what needs to be done 
} 

或者讓你的操作方法是:

public ActionResult CreateEdit(int? employeeId) 
{ 
    // Do what needs to be done 
} 

..然後更改您的幫手的代碼爲:

@Html.ActionLink("Edit", "CreateEdit", new { employeeId = item.Id }) 

我希望這有助於澄清事情。

+0

第一種方法不起作用,出現錯誤:「參數字典中包含對於方法System.Web.Mvc.ActionResult的非可爲空類型」System.Int32「的參數'id'的null條目CreateEdit( Int32)'「當我使用」新員工「鏈接 – AGuyCalledGerald 2012-03-20 10:31:02

+0

它應該工作,但你只需要改變你的輸入參數在我的代碼中。他們需要完全一樣。 – 2012-03-20 11:17:15