我在我稱爲「DirectorySearchController」控制器此方法Html.Actionlink傳遞空值到控制器
public ActionResult PersonDetails(FoundPerson person) //for some reason person is null here
{
DirectoryViewModel viewModel = new DirectoryViewModel();
viewModel.person = person;
return View(viewModel);
}
當我通過一些參數,將其從使用Html.Actionlink視圖它返回一個空值
<ul data-role="listview">
@if (ViewBag.Message == "NO RESULTS FOUND")
{
<li>@ViewBag.Message</li>
}
else
{
foreach (var employee in Model)
{
<li>
<div class="ui-grid-b">
<div class="ui-block-a" style="width:20%; vertical-align:middle"><img src="@employee.pictureURL" width="40px" height="40px"/></div>
<div class="ui-block-b" style="width:80%; vertical-align:middle">@Html.ActionLink(employee.name, "PersonDetails", "DirectorySearch", new { person = employee}, null)</div>
</div>
</li>
}
}
</ul>
但有趣的是,當我通過參數而不使用「新」關鍵字它傳遞正確的值。但是,問題是我需要傳遞多個參數,所以我需要使用「新」關鍵字。
<div class="ui-block-b" style="width:80%; vertical-align:middle">@Html.ActionLink(employee.name, "PersonDetails", "DirectorySearch", employee, null)</div>
我有完全相同的問題 - 如果我指定控制器方法需要的參數,它會抱怨空值,但如果我傳遞該對象,它會奇蹟般地選擇正確的對象屬性。瘋! – 2012-11-29 10:46:10