2

ビューの一般的なレイアウトページがあります。このレイアウトページには、利用可能な日付のリストを示すドロップダウンリストが含まれています。私が欲しいのは、データパラメータのみを変更してこのページをリロードすることです。コントローラ、アクション、およびその他のパラメータは、現在のリクエストコンテキストから何らかの方法で取得する必要があります。

すべてのビューで手動で実行したい場合は、次のようになります。

@Html.ActionLink(
     "",                                        
     "I need to have current action name here", 
     new { date = "The Value of the chosen SelectListItem" });

どうすればこれを達成できますか?または、別のアプローチはありますか?

4

2 に答える 2

2

現在のアクションに関する情報はRequestContext、で入手できます。直接アクセスできます。

@Url.Action(ViewContext.RequestContext.RouteData.Values["action"], 
         new { date = "The Value of the chosen SelectListItem" });

あなたの場合、URLをオプションデータ属性に追加してから、jQueryで操作します。

$('select#yourid').change(function() {
    document.location.href = $(this).find('option:selected').data('url'));
});​

ドロップダウンリストの変更時にデータ属性をフェッチする方法は、このFIDDLEで確認できます。

于 2012-10-23T07:37:04.133 に答える
-2

HTML:

<select id="mySelect" name="list" size="1"> 
   <option value="1">Option 1</option> 
   <option value="2">Option 2</option> 
</select> 
<span id="tag"></span> 

Javascript:

//cache the select and span elements  var mySelect =
 document.getElementById("mySelect"), 
 tag = document.getElementById("tag");    //when it changes  
 mySelect.onchange = function() { 
 //change the tag innerHTML checking the selected value of the select 
 tag.innerHTML = mySelect.value === "1" ? "some text" : "some other text";  }

それは一例でした。別のページをロードしたい場合-別のJS関数またはajaxコントロールを呼び出します

于 2012-10-23T07:28:21.677 に答える