2012-08-02 120 views
0

我有以下看法:查看操作链接不将值传递给控制器​​动作

<h2> 
Contract</h2> 
@Using Html.BeginForm() 
@Html.ValidationSummary(False) 
@<fieldset> 
<legend>Hire Contract</legend> 
<div class="editor-label"> 
@Html.LabelFor(Function(model) model.ContractNo) 
</div> 
<div class="editor-field"> 
@Html.DisplayTextFor(Function(model) model.ContractNo) 
</div> 

<div class="editor-label"> 
@Html.LabelFor(Function(model) model.HireId) 
</div> 
<div class="editor-field"> 
@Html.DisplayTextFor(Function(model) model.HireId) 
</div> 

-- More fields here --- 

<div> 
<table> 
<tr> 
<th> 
Line Id 
</th> 
<th> 
Description 
</th> 
<th> 
Return Quantity 
</th> 
<th> 
</th> 
</tr> 

<p/> 
@Html.ActionLink("Add Line", "AddContractLine") 
<p/> 

@For Each item In Model.HireContractLines 
Dim currentItem = item 
@<tr> 
<td> 
@Html.DisplayFor(Function(modelItem) currentItem.LineId) 
</td> 
<td> 
@Html.DisplayFor(Function(modelItem) currentItem.Description) 
</td> 

-- Many other fields here ... 

<td> 
@Html.ActionLink("Edit", "EditContractLine", New With {.id = currentItem.LineId}) 
| 
@Html.ActionLink("Delete", "DeleteContractLine", New With {.id = currentItem.LineId}) 
| 
@Html.ActionLink("Return Line", "ReturnContractLine", New With {.id = currentItem.LineId}) 
</td> 
</tr> 
Next 
</table> 
</div> 
<p> 
<input type="submit" value="Full Return" /> 
</p> 
</fieldset> 

而且控制器的样子:

Function EditContractLine(hireLineId? As Integer) As ActionResult 
Dim contractLine = GetContractLine(CInt(hireLineId)) 
Return View(ContractLine) 
End Function 

然而,当我点击编辑线或删除线该值不会传递给控制器​​操作。它总是空的。

任何人都可以请我指出这个问题?任何意见将不胜感激。

回答

0

我发现了什么问题:

参数名称应该是操作链接和控制器参数相同。

例如.id应该是.hireLineId以匹配控制器参数名称!

@ Html.ActionLink(“Return Line”,“ReturnContractLine”,New with {.id = currentItem.LineId})

相关问题