2012-02-08 9 views
0

私は整数を受け取り、文字列値を返します。私のコントローラのアクションを定義している:ビューからアクションを呼び出してその結果を返す方法

public string SqlQuery(int listItemId) 
     { 
      return _sqlListSharePointList.GetSqlQueryFromCache(listItemId); 
     } 

私は私の見解から、このアクションを呼び出すことができますどのように? AJAXとは別のオプションはありますか?

私は以下を試みたが、うまくいきませんでした:

$.get('/SqlReportList/SqlQuery', 1, function (data) { 
       alert(data); 
      }); 

「SqlReportListは」私のコントローラの名前です。

Iはまた、以下のコードを試みた:

$に.get( '/ SqlReportList /のSQLQuery/1'、関数(データ){; アラート(データ)})。

しかし、それは、生産上、listItemIdがnullであるという例外を投げた。

私のアクションを異なる方法で飾る必要がありますか?

私はまた、完全修飾名が、同じエラー経由でアクセスしてみました:あなたは(推奨)AJAXを使用したくない場合は

http://localhost:4574/SqlReportList/SqlQuery/1

おかげで、

答えて

1

を呼び出すための唯一の方法をこの方法はページのリフレッシュであり、サーバー側(コントローラー)に再び表示されるようにしてください。

0
$.get('/SqlReportList/SqlQuery', { "listItemId": listItemId }, function (data) { 
     $('#tbSqlQuery').text(data); } 
     ); 
0

周囲のページのレンダリング時にパラメータが分かっていますか?

もしそうなら(あなたの質問が正しく理解されていれば)、Html.RenderActionを使うことができます。 http://haacked.com/archive/2009/11/17/aspnetmvc2-render-action.aspx

を参照してください。そうでない場合は、実際にはAJAXまたはフルページのリロードしか使用できません。 AJAXのURLを正しく取得するには、Url.Actionをいくつかのプレースホルダ値とともに使用できる必要があります。

T4MVCプロジェクトは、Javascriptコードの明示的なプレースホルダをサポートしていても、アクションURLを含むさまざまなものに対して強力な型サポートを提供します。 http://t4mvc.codeplex.com/documentationの2.2.2節を参照してください。

関連する問題