Если я понимаю Ваш вопрос, Вы пытаетесь передать ViewData в пользовательский элемент управления. Пользовательский элемент управления является по существу частичным представлением, таким образом, Вы сделали бы это:
<% Html.RenderPartial("someUserControl.ascx", viewData); %>
Теперь в Вашем usercontrol, 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));
}
У нас есть страница Global.asax.cs, которая отображает вызовы ajax.
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.)
);
}
}
Я надеюсь, что это получает Вас от к хорошему началу.Удачи
Я - вполне уверенные данные представления, доступные внутренние пользовательские элементы управления, пока Вы расширяете Систему. Сеть. Mvc. ViewUserControl и передача это в. У меня есть отрывок кода:
<%Html.RenderPartial("~/UserControls/CategoryChooser.ascx", ViewData);%>
и из моего CategoryChooser ViewData доступно.
Не уверенный, если я понимаю Вашу проблему полностью, но здесь являюсь моим ответом на, "Как добавить Пользовательский элемент управления к Вашему Проекту MVC ASP.NET".
В Visual Studio 2008 можно выбрать Add Item. В категориях в левой стороне можно выбрать Visual C#> Web> MVC. Существует опция MVC View User Control. Выберите его, выберите имя, выберите желаемую основную страницу, и Вы хороши пойти.