問題是:如何在ASP.NET MVC的View中調用多個動作?
我使用一個文本框得到一個字符串q,並希望將它傳遞給3個不同的行動search
控制器。即action1(string q), action2(string q)
等
現在語法我的行動:
public ActionResult action1(string q)
{
var mydata = from p in fab //LINQ logic
select new action1class
{ data1=p //assignment };
return View("_partialAction1", mydata);
}
同樣還有其他兩個動作。
我使用3種不同的操作,因爲我的LINQ邏輯從3個不同的源獲取數據,因此需要創建不同的mydata
。
我的問題是:我想,當我點擊「搜索」按鈕文本框的那麼所有的3個行動應該運行併產生一些<div id="action1">
標籤下面的其他局部視圖之一。
我試圖用ajax.BeginForm
,但它只能在一個時間
@using (Ajax.BeginForm("action1", "Search", new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "action1",
LoadingElementId="progress"
}))
我也嘗試過使用ViewModel
調用一個動作,但問題是,我無法一個更大的模型傳遞到一起的觀點這些mydata
種類的數據在LINQ的行動中獲得。在這種情況下,我不清楚如何使用viewmodel。
我正在使用的方法是否正確?或者還有其他方法嗎?我想用按鈕單擊來顯示所有操作的結果。
你爲什麼想把它分解成3個動作? –
我建議你再看看使用AJAX。 AJAX將允許IIS處理異步操作(請求),從而縮短響應時間。你能發佈你的AJAX代碼嗎? – Joshua
@ DanielA.White使用3種不同的動作,因爲我的LINQ邏輯從3個不同的源獲取數據,因此需要創建3個不同的「mydata」。 – Man8Blue