0
我在我的控制器內使用MVC3 WebGrid。我需要在列中有一個圖像,這樣當您單擊該圖像時,數據將傳遞給任何控制器內的動作。我想通過Ajax執行此操作,即單擊圖像不應該導致回發,它應該是對某個Controller的Action的Ajax調用。並且我想傳遞一個對象(模型),而不是任何字符串或int,或其他)。控制器內的WebGrid中的可點擊圖像(通過Ajax)?
public ActionResult AddInGrid(AjaxModel m)
{
if (Session["ajaxmodel"] == null)
{
Session.Add("ajaxmodel", a.am);
}
List<AjaxModel> list = (List<AjaxModel>)Session["ajaxmodel"];
list.Insert(0, m);
Session.Add("ajaxmodel", list);
WebGrid g = new WebGrid(list);
IHtmlString s = g.GetHtml();
string s1 = s.ToString();
return Json(new { text = s1 });
}
應該在GetHtml()方法裏面放什麼? 編輯:這是我到目前爲止已經試過,而且它不工作: 我發現了什麼HTML渲染上Ajax.ActionLink,並試圖爲併入
WebGrid g = new WebGrid(list);
string link = string.Format(@"<a data-ajax='true' data-ajax-method='GET' data-ajax-mode='replace' href='/Home/Delete/{0}' />Delete</a>",item.fname);
IHtmlString s = g.GetHtml(g.Columns(g.Column(format:link)));
這個工程的一個視圖中,我需要它Controller.It內不工作有 – 2012-03-21 08:32:16
你需要什麼insi控制器?爲什麼你首先在控制器中生成HTML?這不是控制器要做的。控制器操作模型並呈現視圖。這完全是這個觀點的責任。您可以在這些視圖中使用HTML助手來封裝一些通常重複的邏輯。 – 2012-03-21 08:32:39
我讀了一下,似乎我必須創建一個AjaxHelper類的實例,也是ViewContext等的實例。不能做太多,我是MVC的新手 – 2012-03-21 08:33:45