Pergunta

Hi im novo para MVC e eu pescados em torno sem sorte sobre como construir MVC controles de usuário que têm ViewData devolvido a eles. Eu estava esperando que alguém iria publicar uma solução passo a paso sobre como abordar este problema. Se você pudesse fazer sua solução muito detalhado que ajudar muito.

Desculpe por ser tão discreta com a minha pergunta, eu gostaria apenas de esclarecer que o que estou ultimatly tentando fazer é passar um id para um método ActionResult controlador e querer torná-la a um controle do usuário diretamente do próprio controlador. inseguro Im sobre como começar com esta abordagem e se perguntando se isso é mesmo possível. Será essencialmente na minha mente esta aparência

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);
}

e na minha User Control Gostaria de tornar os objetos desse recorde e isso é o meu problema.

Foi útil?

Solução

Se entendi sua pergunta, você está tentando passar ViewData para o controle do usuário. Um controle de usuário é essencialmente uma visão parcial, para que você faria isso:

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

Agora, em seu usercontrol, ViewData vai ser tudo o que você passou em ...

Outras dicas

OK aqui vai - Nós usamos dados JSON

Na página aspx temos uma chamada ajax que chama o controlador. Olhe para cima os parâmetros de opções disponíveis para chamadas ajax.

url:. Isso chama a função na classe (obviamente) Nosso nome da classe é JobController, nome da função é updateJob e leva sem parâmetros. O url cai a controllerPortion do classname. Por exemplo, para chamar a função updateJob a url seria '/ 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);
}
}
);

Na Classe 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));
}

Nós temos uma página Global.asax.cs que mapeia as chamadas 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.)
    );
  }
}

Espero que isso você fica fora de um bom começo. Boa sorte

Tenho a certeza de dados vista é controles de usuário dentro acessíveis, desde que você estender System.Web.Mvc.ViewUserControl e passá-lo em Eu tenho um trecho de código:.

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

e para dentro do meu CategoryChooser ViewData está acessível.

Não tenho certeza se eu entendo o seu problema completamente, mas aqui está a minha resposta à pergunta "Como adicionar um User Control para o seu projeto ASP.NET MVC".

No Visual Studio 2008, você pode escolher Adicionar Item. Nas categorias no lado esquerdo, você pode escolher Visual C #> Web> MVC. Há uma opção MVC Ver Controle do Usuário. Selecioná-lo, escolher um nome, selecione a página mestre desejado e você está pronto para ir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top