2011-11-30 4 views
8

Jqueryでは、私はEmployeeControllerとEmplアクションに行くようプログラムに指示する必要があります。どのようにしてこれを行うのですか?私はajaxを使用せずにこれを行う簡単な方法にしたい。MVC Jqueryはコントローラの動作に移ります

+0

あなたは何を意味するのに役立ちます願っていますか?使用していましたかあなたは新しいページに移動したいですか? – Dismissile

+0

「へ」に移動しますか?何に行くの?ページ全体? AJAXコール? –

答えて

13
window.location.href = "/{controller}/{action}" //in your case, /employee/empl 

これは、あなたのGlobal.asax.csファイルで指定されたルートの作品。私はMVCの基本の1つであるので、これがどのように動作するかをお読みになることをお勧めします....

+0

より良い使い方location.href = '何でも'; – BigMike

+0

@BigMike最後に「.href」を追加しました。フィードバックいただきありがとうございます。おそらくwindow.locationはオブジェクトであるため、おそらくそれは明らかでしょう。 –

+0

と私はパラメータを渡したい場合は? –

0

作るURI構造&ルーティングについての仮定、しかし:

window.location = '/employee/empl/';

+0

彼のルートが '/ controller/action'に設定されている場合のみ – Dismissile

+0

そうです。瞬時に「免責事項」を追加しました。 – simshaun

5

これまでのところ、すべての良い応答が、URLを構築するための魔法の文字列を使用するだけで私に悪寒を与える。私のJSコードを使用している

public static string GetUrl(this HtmlHelper, helper, string Action, string Controller, object RouteValues) 
{ 
    UrlHelper Url = new UrlHelper(HttpContext.Current.Request.RequestContext); 
    return Url.Action(Action, Controller, RouteValues); 
} 

、その後:

location.href = '@Html.GetUrl("Action", "Controller", new { foo=Model.Foo })'; 

それは、より一貫性のある、内部ルーティングを気にし、私に嫌なことをやって集中管理ポイントを提供します私はこのような拡張機能を追加することを好みますURLを:)まあ

、もう一つには、

window.location = "whatever"; 

は良好であり、作品、まだ

location.href = "whatever"; 

が好ましい。

HTH

+0

これにはもう助けがあります: '@ Url.Action(" Action "、" Controller "、new {foo = Model.bar})' –

+0

@KristofClaes:はい、もちろんあります。それは内部的に使用されている、自分のヘルパーは、私はURL上で厄介なことを行うことができます、理想的には理想的な世界でそれを必要としない集中的な方法を持っているだけですが、時には要件が私はこれに頼らなければならなかった。もちろん、私は実際のヘルパーのモックを投稿するサンプルコードで私のロジックを削除しました:) – BigMike

+0

もう一つの欠点...再配置を行っているこのスクリプトがビュー内にないと(何も起こらないはずです) ?ヘルパーメソッドを使用することはできません。代わりに、ルートにリダイレクトするだけで完全にはっきりしているはずです。 –

2

アプリケーションが公開されているときに受け入れられる回答は機能しません。 私は

window.location.href='@Url.Action("ActionName","ControllerName")' 

それは

関連する問題