2017-11-21 5 views
0

をコントローラにビューを形成する: -通過値はビューのMVC .NETで

ここでopがHTMLのドロップダウンから、私の選択した値が& eは、ボタンのクリックの価値ある..です i just want to pass both two values to my controller私はそれらを置くことができる場所から私のSQLクエリで。どのように私は、コントローラのmycontroller

function details() 

{                        
var op; 
var e = document.getElementById("test").Value; 

$("mydropdown option").each(function (i) { 

    var op = $(this).attr('selected').val(); 
}) 

window.open('@UrlAction("UserLayerView", "home", new {layertype = e, layername= op })') 
} 

のものを得ることができるので、私は私の@UrlActionにこれら二つの変数を渡すことができます -

public ActionResult UserLyerView(DataTable as dt, String layertype, String layername) 
{ 
string query = "select column name from" + layertype + "Where name =" +layername; 
} 
+0

危険がロビンソンになる!ユーザー入力をSQLクエリに連結することは決してありません - クエリ文字列からデータベースサーバーを完全にpwnすることができます* - SQLパラメータを調べます。今、ここでの質問は何ですか? 'UrlAction'は機能しますか? (そして:それは 'Url.Action(...)'ではありませんか?)正しい結果が得られますか? window.openが起動するとどうなりますか?基本的に:あなたの期待と現実はどのように違うのですか? –

+0

UrlActionが機能しない –

+0

「ここでは機能していません」とはどういう意味ですか?コンパイルエラーで失敗していますか?それは間違った結果を与えていますか?実行時に例外がスローされますか?あなたは 'UrlAction(...)'の代わりに 'Url.Action(...)'を試しましたか? –

答えて

1

あなたは、クライアント側とサーバー側のコードを混合しています。 eおよびop変数はクライアントサイドのjavascriptです。 Url.Actionはサーバー側の剃刀コードです。 はまだ存在しないため、クライアント側の変数はサーバ側の操作では使用できません。(およびそのときは:Url.Actionは意味をなさないでしょう)。そう;連結を使用して手動で動的にURLを構築する必要があります。 も入力を隠しフォーム(おそらくaction="get")に設定して入力することができます。

関連する問題