0

単純なMVCビューに次のコードがあります。

<div id="CarText"><%=Model.Cars[10].Name %></div>
<div id="SelectedCar">no car selected</div>
<%=Ajax.ActionLink("ajax test","TestMethod",new {carObj = Model.Cars[10]},new AjaxOptions {UpdateTargetId = "SelectedCar"})%>

次に、私のコントローラーには、次のものがあります。

public ActionResult TestMethod(Car carObj)
{
   return PartialView("SelectedCar", carObj);
}

ページを実行すると、すべてが期待どおりにレンダリングされます(たとえば、11番目の車の名前が最初のdivに表示されます。次に、リンクをクリックすると、コントローラーのコードが呼び出されますが、「carObj」パラメーターが呼び出されます。常にnullです。

私は今かなりの数のページとブログを読みました、そして、私は私が間違ったことをするのを見ることができません...それ故にこの質問。

いつものように、答えは大歓迎です:)

4

2 に答える 2

1

したがって、ActionLinkを介してオブジェクトを渡すことはできないことがわかります...実際に考えると、それは理にかなっていると思います。

Ho-hum .. Ajaxを介して参照できるように、IDパラメーターを追加する必要があると思います:/

于 2012-05-18T10:48:48.250 に答える
1

私はsk93に同意します
が、asjax.actionlinkメソッドをあまり使用していません(jqueryの人)。
使用しているアクションリンクメソッドのソリューションに関する1つの問題を指摘できます。{carObj = SOME_CAR_OBJ}これは、送信するのが、という名前のプロパティを持つオブジェクトであることを意味しcarObjますsome value
代わりに必要なのはJSONオブジェクトです

{
//all the car propertiese
name = cars[10].name,
id = cars[10].id
//etc etc
}

このようにして、carObjをサーバーに送り返すことができる可能性があります

于 2012-05-18T10:57:04.200 に答える