Asp.net-Mvc

MVC 使用者控制項 + ViewData

  • October 1, 2008

嗨,我是 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.)
   );
 }
}

我希望這能讓你有個好的開始。祝你好運

引用自:https://stackoverflow.com/questions/157629