2

私は最初の MVC3 アプリケーションを作成していますが、ある時点で立ち往生しています。ここがよくわからないところですが、

Taskscontroller で生成された Edit アクションは次のようになります。

// GET: /Tasks/Edit/5

public ActionResult Edit(int id)
{
Task task = db.Tasks.Find(id);
    return View(task);
}

対応するビュー コードは次のとおりです。

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

ここで、id は Edit アクションに正しく渡されます。

これは、ビューから id 値を受け取るように create (Get) メソッドを変更した方法です。コード スニペットは次のとおりです。

public ActionResult Create(int i)
{
    ViewData["I"] = i;
    return View(i);
}

対応するビュー コードは次のとおりです。

@Html.ActionLink("c", "Create", "Tasks", new { id = someId }, new { @class = somecssclass})

どんな助けでも大歓迎です。create アクションの id 値が null なのはなぜですか?

前もって感謝します。

4

1 に答える 1

0

試す

public ActionResult Create(int id)
{
    ViewData["I"] = i;
    return View(i);
}

idデフォルトのモデルバインダーは、またはそのタイプミスをバインドするための一致する受信パラメーターを見つけられませんか?さらに、文字列を受け取りたい場合は、文字列も投稿する必要があります

@Html.ActionLink("c", "Create", "Tasks", new { id = someId.ToString() }, new { @class = somecssclass})

あなたが受け取るならば、あなたはそこに好きなものFormCollectionを見つけるでしょうid

 public ActionResult Create(string i, FormCollection col)
    {
        var id = col["id"];
        ViewData["I"] = i;
        return View(i);
    }
于 2012-05-16T16:15:03.003 に答える