0

レコード ナビゲーション コントロールとして機能するドロップダウン リストがあります。ドロップダウンから値を選択すると、そのレコードに「ジャンプ」することになっています。これが機能する前にこのようなことをしたような気がしますが、これを機能させることはできません。問題は、ドロップダウン リストを取得して、ページが最初に呼び出された ID ルート値を変更できないことです。たとえば、私のページが次の URL から呼び出されたとします。

/PatientProfile/Services/12

12 はここでの ID ルート値です。これは基本的に表示される最初のレコードです。これは機能します。ただし、ドロップダウンから何かを選択すると、次のようにリダイレクトされます。

/PatientProfile/Services/12?ID=7

ルート値 ID に 12 がまだ残っていることに注目してください。ドロップダウンから ID 7 が選択されましたが、ルート値ではなく、新しいパラメーターとして URL に追加されています。私がしたいことはこれです:

/PatientProfile/Services/7

ドロップダウンのカミソリは次のようになります。

@using (Html.BeginForm("Services", "PatientProfile", FormMethod.Get))
{ 
    @Html.Label("ID", "View Profile:")
    @Html.DropDownListFor(model => model.CurrentProfile.ID, ViewBag.ProfileID as SelectList, new { onchange = "this.form.submit();" })  
}

Html.DropDownList と Html.DropDownListFor の両方を試しましたが、動作に違いは見られませんでした。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これにはjqueryを使用します。これが正しく機能するためには、ドロップダウンリストの生成された ID を確認してください

$('#CurrentProfile_ID').change(function(){
    window.location('@Url.Action("Services", "PatientProfile", new { id = "----" })'.replace("----", $('#CurrentProfile_ID :selected').val()));
}); 

うまくいけば、これが役に立ちます。

PS。これは、ajax 呼び出しを使用して更新する部分ビューを使用するのに最適な状況のように思われるため、ポストバックする必要はありません。

于 2013-10-28T14:24:48.417 に答える