3
respostas

Reusabilidade do Form para Listar os Detalhes e Editar o Registro

Gostaria de saber se poderia utilizar este mesmo formulário para os ActionResults de Edição e Detalhes no controller. Eu estou utilizando o _PartialView para chamar o formulário nas Views Detalhe e Editar, mas gostaria de saber se poderia utilizar apenas a ActionResult "Form" para realizar as ações de Edição e Detalhes utilizando por exemplo JavaScript.

3 respostas

Olá, Fagner!

Você poderia usar condições dentro do Razor, e exibir o texto ou campo de edição se o Id da entidade já estiver preenchida ou não, como no exemplo abaixo:

<table>
  <tr>
    <td class="label">Nome:</td>
    <td class="field">
        @if (Model.Id != 0)
        {
            @Html.DisplayFor(x => Model.Nome)
        }
        else
        {
            @Html.EditorFor(x => Model.Nome)
        }
    </td>
  </tr>
....
</table>

Obrigado pela atenção, mas não acha mais prático e até mais elegante usar uma função JS pra jogar um disabled no campo pra detalhe, mas o que queria saber é se posso usar alguma função por exemplo do JS que faça eu enviar os dados fora de um form, ou de um form q mande isso pro JS e ele defina, a agora o usuário quer editar então eu desabilito o disabled e habilito o botão salvar e desabilito o editar e localizar.

Ou poderia usar um switch defina qual formulário vou usar, recebendo a condição por uma viewbag, tipo sem usar o JS.

Você pode usar a função submit() do jQuery, passando o id do form e especificando a action do MVC:

HTML

<form id="target" action="destination.html">
  <input type="text" value="Hello there">
  <input type="submit" value="Go">
</form>
<div id="other">
  Trigger the handler
</div>

JavaScript

$( "#target" ).submit(function( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});

fonte: https://api.jquery.com/submit/

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software