データベースから結果を返すちょっとしたボックスがあります。それはうまく動作します。結果はリストページにあり、正しく表示されます。しかし、私は選択されたオブジェクトを取ってそれを私のコントローラに渡す必要があります。私はそれをデバッグするとNULL値を取得し、空の結果ページです。ここ は、モデルである:ここではリストビューのページから選択したオブジェクトを渡すMVC
public class CodeSnip
{
public short Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Code { get; set; }
public LangType Language { get; set; }
public string Creator { get; set; }
}
public class ListOfCodeSnips : List<CodeSnip>
{
public CodeSnip CodeSnip { get; set; }
}
public enum LangType
{
CSharp,
css,
HTML,
JavaScript,
Perl,
PHP,
Python,
Ruby,
SQL,
VB,
XML,
Other
}
は(気圧何もしない)コントローラメソッドである:ここで
[HttpPost]
public ActionResult Display(CodeSnip snip)
{
return View(snip);
}
は、私はビューのために持っているものです。ここでも、オブジェクト値のためだけNULLSポスト:
@model Models.ListOfCodeSnips
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.CodeSnip.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.CodeSnip.Description)
</th>
<th>
@Html.DisplayNameFor(model => model.CodeSnip.Language)
</th>
<th>
@Html.DisplayNameFor(model => model.CodeSnip.Creator)
</th>
</tr>
@using (Html.BeginForm("Display", "Home", FormMethod.Post))
{
foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Language)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Creator)
</td>
<td>
<input type="submit" value ="Display"/>
</td>
</tr>
}
}
</table>
をので、簡単に言えば、私は何をしたいビューから選択したモデルアイテムを取ると私のコントローラの表示方法にそれを渡しますが、私のようになり言った、私が得るすべてはヌルです。 私は見て回って、私はすべてのオブジェクトのリストを渡す方法の例fを見つけるです。私はそれらと猿を試みたが、何も得られなかった。
お時間をいただきありがとうございます。
計算をしていない場合や、値をdbに保存/変更しようとしていて、代わりに*表示する場合は、 'HttpPost'リクエストではなく' HttpGet'リクエストですか? –
このようなアプローチに利点はありますか?あれば、どうすればいいですか?私はActionLinkで試してもまだオブジェクトを渡すことができませんでした – rigamonk