it-swarm-pt.tech

defina um valor para modelar usando jQuery

Como posso definir um valor para o meu modelo usando jQuery?

Eu tenho um campo de entrada (que é id = "comment") e quero que o texto nele seja inserido em @Model.Comment Usando o jQuery.

algo como: @Model.Comment = $("#comment").val();

11
ParPar

Como posso definir um valor para o meu modelo usando jQuery?

Isso não faz sentido. O jQuery é executado no cliente. O modelo vive no servidor. Portanto, no momento em que o jQuery é executado no cliente, o código do lado do servidor e o Model estão mortos há muito tempo.

O que você pode fazer do cliente é enviar uma solicitação AJAX para o servidor passando o valor do campo de entrada para que o servidor possa executar as ações respectivas e atualizar o modelo:

$.ajax({
    url: '@Url.Action("foo")',
    type: 'POST',
    data: { comment: $("#comment").val() },
    function(result) {
        // TODO: process the server results
    }
});

Onde no servidor você terá uma ação do controlador Foo que será invocada:

[HttpPost]
public ActionResult Foo(string comment)
{
    // TODO: do something with the value of the comment and return a result
    // to the client
    ...
} 
3
Darin Dimitrov

Longe de mim discordar de Darin (ele respondeu metade das minhas perguntas aqui!), Mas colocará isso no caso de o OP ou qualquer outra pessoa achar útil.

Ao atribuir um atributo Html a um valor de modelo:

@Html.HiddenFor(x => x.Object.Id, new { id = "Id" } )

Você pode então definir o valor com o Jquery assim

$("#Id").val(5); // or whatever value
42
DevDave