2012-02-08 49 views
0

我定義我的控制器上,它接受一個整數並返回一個字符串值的動作:如何從視圖調用操作並返回其結果?

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

我怎麼能叫從我看來這個動作?除了AJAX之外,還有哪些其他選擇?

我試過以下,但沒有奏效:

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

的「SqlReportList」是我的控制器的名稱。

我也嘗試下面的代碼:

$獲得( '/ SqlReportList/SqlQuery類/ 1',功能(數據){ 警報(數據); });

但它在生產上拋出了一個異常,即listItemId爲空。

我應該裝飾我的動作不同嗎?

我也試圖通過完全合格的名稱,但同樣的錯誤訪問它:

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

感謝,

回答

1

如果你不希望使用AJAX(建議),那麼唯一的方法調用該方法是通過頁面刷新,只有這樣才能從視圖再次打開服務器端(控制器)。

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項目爲各種事情提供強類型支持,包括動作URL,甚至支持Javascript代碼的顯式佔位符。參見http://t4mvc.codeplex.com/documentation的第2.2.2節

相關問題