9

嗨即時通訊新的MVC和我沒有運氣如何構建有ViewData返回給他們的MVC用戶控件。我希望有人會發布關於如何解決這個問題的一步一步的解決方案。如果你可以使你的解決方案非常詳細,這將大大幫助。MVC用戶控件+查看數據

對不起,我的問題如此分散,我只想澄清一下,最終嘗試做的事情是將id傳遞給controller 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); 
} 

,在我的用戶控制,我想使該記錄的對象和這就是我的問題。

回答

8

如果我理解你的問題,你正試圖將ViewData傳遞給用戶控件。用戶控制本質上是一個局部視圖,所以你可以這樣做:

<% Html.RenderPartial("someUserControl.ascx", viewData); %> 

現在在你的用戶控件,ViewData的將是不管你通過了...

+0

你的意思是<%Html.RenderPartial(「someUserControl」,viewData); %>如果你把你的文件放在共享文件夾中 – 2010-05-14 17:58:08

0

我敢肯定觀點的數據是內部用戶控件訪問,只要你伸出System.Web.Mvc.ViewUserControl,並通過它在我的代碼片段:

<%Html.RenderPartial("~/UserControls/CategoryChooser.ascx", ViewData);%> 

,並從我的CategoryChooser ViewData是可訪問的。

0

不知道如果我完全理解你的問題,但這裏是我對「如何將用戶控件添加到ASP.NET MVC項目」的回答。

在Visual Studio 2008中,您可以選擇添加項目。在左側的類別中,您可以選擇Visual C#> Web> MVC。有一個選項MVC查看用戶控件。選擇它,選擇一個名稱,選擇所需的母版頁,你很好走。

1

確定這裏有雲 - 我們使用JSON數據

在我們有一個Ajax調用調用該控制器的aspx頁面。查找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.) 
    ); 
    } 
} 

我希望這可以讓您有一個良好的開端。 祝你好運