Como faço para enviar entrada desabilitada no ASP.NET MVC?
c#
.net
javascript
asp.net-mvc
Sanchitos
fonte
fonte
Respostas:
Você não pode fazer o campo em
readonly="readonly"
vez dedisabled="disabled"
? Um valor de campo somente leitura será enviado ao servidor, embora ainda não seja editável pelo usuário. NoSELECT
entanto, uma tag é uma exceção.fonte
<%: Html.TextBoxFor(model => model.p1, new { @readonly = "readonly" }) %>
como posso torná-lo cinza de forma que pareça que não é editável? Melhor ainda, podemos usar algo semelhante ao LabelFor, eu tentei LabelFor, mas ele só obtém o DisplayName ....type="checkbox"
entradasObrigado a todos:
A maneira como resolvi isso:
Nota:
Consegui essa informação na resposta, mas fui editada.
fonte
textBox.Attributes.Add("readonly", "readonly");
e a explicação está no link$("#textBoxId").css("color", "#c0c0c0")
.@ppumkin mencionou isso em seu comentário sobre esta resposta, mas eu queria destacá-lo, pois não consegui encontrar outros recursos sobre o envio de dados de um deficiente
<select>
. Também acredito que seja relevante para a questão, pois os selects não são<input>
s, mas são "entradas" s.Exemplo:
Cuidado: isso colocará duas tags na página com o mesmo ID, o que não é um HTML válido e pode causar dores de cabeça com javascript. Para mim, eu tenho javascript para definir o valor da lista suspensa por seu html
id
, e se você colocar o campo oculto primeiro, o javascript encontrará isso em vez deselect
.fonte
Normalmente, se eu tiver um campo que é "somente leitura", mas precisa ser enviado de volta ao servidor, desabilitarei a exibição (ou simplesmente texto), mas adicionarei um campo oculto com o mesmo nome. Você ainda precisa se certificar de que o campo não foi realmente modificado no lado do servidor - apenas não atualize a partir do modelo em sua ação - mas o estado do modelo ainda será preciso se houver erros.
fonte
Você também pode usar um código como este antes do envio do formulário:
fonte
Ajax.BeginForm
?Por design, os navegadores não suportam isso.
Faça-os
readonly
que permitam enviar valores ao servidor ou, se você estiver lidando com controles que ainda podem ser usados comreadonly
atributos como Selecionar, adicione o estilo csspointer-events: none;
para torná-los não interativosTipo de hack, mas funciona! Também funciona quando você está enviando o formulário diretamente com o botão de envio, sem usar javascript. Nenhum trabalho extra necessário!
Por exemplo:
fonte
Você pode criar um modelo de editor como o abaixo
CSS
Modelo de Editor
fonte
quando estamos lidando com caixas de seleção desabilitadas, mas marcadas e queremos postar o valor, precisamos garantir que nosso campo oculto apareça antes do campo oculto @ Html.CheckBoxFor.
a seguir está o link de onde encontrei a resposta. http://davecallan.com/posting-disabled-checkboxes-mvc-razor-views/#comment-11033
fonte
expandindo Tasos '(": disabled", $ (' # xxxForm ')). removeAttr ("disabled"); você pode usar:
fonte
Isso ajudará a enviar valores de modelo em ASP.net:
fonte
Eu costumo usar essa forma para CheckBox ou CheckBoxFor porque desabilitar está causando a perda do valor. Readonly também não funciona na caixa de seleção.
fonte
Basta colocar este script em scripts @section em sua página. isso habilitará entradas quando você enviar a página, e você deve redirecionar o usuário para outra página após o envio.
fonte
Basta tornar essa propriedade [Obrigatório] no ViewModel vinculado a essa visualização.
fonte