Asp.net-Mvc
MVC 使用者控制項 + ViewData
嗨,我是 MVC 的新手,我一直在摸索如何建構將 ViewData 返回給他們的 MVC 使用者控制項,但沒有運氣。我希望有人會發布有關如何解決此問題的分步解決方案。如果您可以使您的解決方案非常詳細,那將有很大幫助。
抱歉,我的問題如此離散,我想澄清一下,我最終嘗試做的是將 id 傳遞給控制器 actionresult 方法,並希望直接從控制器本身將其呈現給使用者控制項。我不確定如何從這種方法開始,並且想知道這是否可能。在我看來,它基本上看起來像這樣
public ActionResult RTest(int id){ RTestDataContext db = new RTestDataContext(); var table = db.GetTable<tRTest>(); var record = table.SingleOrDefault(m=> m.id = id); return View("RTest", record); }在我的使用者控制項中,我想渲染該記錄的對象,這就是我的問題。
如果我理解您的問題,您正在嘗試將 ViewData 傳遞給使用者控制項。使用者控制項本質上是一個局部視圖,所以你可以這樣做:
<% Html.RenderPartial("someUserControl.ascx", viewData); %>現在在您的使用者控制項中,ViewData 將是您傳入的任何內容…
好的——我們使用 Json 數據
在 aspx 頁面中,我們有一個呼叫控制器的 ajax 呼叫。查找 ajax 呼叫的可用選項參數。
url:這會呼叫類中的函式。(顯然)我們的類名是JobController,函式名是updateJob,它不帶參數。url 從類名中刪除 controllerPortion。例如,要呼叫 updateJob 函式,url 將是“/Job/UpdateJob/”。
var data = {x:1, y:2}; $.ajax({ data: data, cache: false, url: '/ClassName/functionName/parameter', dataType: "json", type: "post", success: function(result) { //do something }, error: function(errorData) { alert(errorData.responseText); } } );在 JobController 類中:
public ActionResult UpdateJob(string id) { string x_Value_from_ajax = Request.Form["x"]; string y_Value_from_ajax = Request.Form["y"]; return Json(dataContextClass.UpdateJob(x_Value_from_ajax, y_Value_from_ajax)); }我們有一個映射 ajax 呼叫的 Global.asax.cs 頁面。
public class GlobalApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute("Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "EnterTime", action = "Index", id = "" } // Parameter defaults (EnterTime is our default controller class, index is our default function and it takes no parameters.) ); } }我希望這能讓你有個好的開始。祝你好運