У меня есть форма, полностью заполненная моделью, но я не могу получить некоторые атрибуты, потому что я считаю, что в этот момент модель равна нулю. Дело в том, что когда я использую @Model.someattribute
, он не работает, но с m => m.cantidadMensajes
. Мне нужно знать, почему это произошло, и как мне с этим бороться?Невозможно получить атрибут модели из razor ASP.net - C#
@model SeaConnectionManager.Modelos.EnvioMensajes.InformacionEntity
@{ var previsualizaciones = "";
if (@Model != null) {
previsualizaciones = @Model.vistaPrevia;
}
}
<div id="Envio" class="overlay">
<div class="popup">
<h2 align="center">Información del Envío</h2>
<a class="close" href="#">×</a>
<div class="content" style="width:100%; margin:auto; padding:10px">
<center>
<a id="tabs">
<ul>
@if (@Model != null) {
if (@Model.cantidadMensajes >= 5)
{
for (var i = 1; i <= 5; i++)
{
<li><a href="#[email protected]"> @i</a></li>
}
}
else {
for (var i = 1; i <= @Model.cantidadMensajes; i++)
{
<li><a href="#[email protected]"> @i</a></li>
}
}
}
</ul>
@previsualizaciones
</div>
<table width="100%" border="0" align="center" cellspacing="4">
<tr>
<td width="36%">Cantidad de mensajes</td>
<td width="44%">
@Html.TextBoxFor(m => m.cantidadMensajes, new { @id = "CantidadMensajes", @class = "input-login", @readonly = "readonly" })
</td>
</tr>
<tr>
<td>Cantidad de contactos</td>
<td>
@Html.TextBoxFor(m => m.cantidadContactos, new { @id = "CantidadContactos", @class = "input-login", @readonly = "readonly" })
</td>
</tr>
<tr>
<td>Saldo</td>
<td>
@Html.TextBoxFor(m => m.saldo, new { @id = "Saldo", @class = "input-login", @readonly = "readonly" })
@Html.HiddenFor(m => m.idTransaccion, new { @id = "idTransaccion" })
</td>
</tr>
</table>
</center><br>
<center>
<table width="122" border="0" align="center" cellspacing="10">
<tr>
<td width="51"><a onclick="EnviarMensajes()" class="boton-para-enviar" style="margin:auto">Aprobar</a></td>
<td width="37"><a href="#" class="boton-para-NO-enviar" style="margin:auto">Rechazar</a></td>
</tr>
</table>
</center>
Изменения после выполнения некоторых советов, не повезло:
@model SeaConnectionManager.Modelos.EnvioMensajes.InformacionEntity
@{ var previsualizaciones = "";
if (Model != null) {
previsualizaciones = Model.vistaPrevia;
}
}
<div id="Envio" class="overlay">
<div class="popup">
<h2 align="center">Información del Envío</h2>
<a class="close" href="#">×</a>
<div class="content" style="width:100%; margin:auto; padding:10px">
<center>
<a id="tabs">
<ul>
@if (Model != null) {
if (Model.cantidadMensajes >= 5)
{
for (var i = 1; i <= 5; i++)
{
<li><a href="#[email protected]"> @i</a></li>
}
}
else {
for (var i = 1; i <= Model.cantidadMensajes; i++)
{
<li><a href="#[email protected]"> @i</a></li>
}
}
}
</ul>
@previsualizaciones
</div>
<table width="100%" border="0" align="center" cellspacing="4">
<tr>
<td width="36%">Cantidad de mensajes</td>
<td width="44%">
@Html.TextBoxFor(m => m.cantidadMensajes, new { @id = "CantidadMensajes", @class = "input-login", @readonly = "readonly" })
</td>
</tr>
<tr>
<td>Cantidad de contactos</td>
<td>
@Html.TextBoxFor(m => m.cantidadContactos, new { @id = "CantidadContactos", @class = "input-login", @readonly = "readonly" })
</td>
</tr>
<tr>
<td>Saldo</td>
<td>
@Html.TextBoxFor(m => m.saldo, new { @id = "Saldo", @class = "input-login", @readonly = "readonly" })
@Html.HiddenFor(m => m.idTransaccion, new { @id = "idTransaccion" })
</td>
</tr>
</table>
</center><br>
<center>
<table width="122" border="0" align="center" cellspacing="10">
<tr>
<td width="51"><a onclick="EnviarMensajes()" class="boton-para-enviar" style="margin:auto">Aprobar</a></td>
<td width="37"><a href="#" class="boton-para-NO-enviar" style="margin:auto">Rechazar</a></td>
</tr>
</table>
</center>
<br>
<strong>Nota:</strong> Si el saldo no se encuentra completo para la cantidad total de mensajes, los mensajes que queden pendientes se enviarán cuando realice la recarga.
</div>
</div>
</div>
Проверьте контроллер из:
public ActionResult EnviarMensajeIndividual(MensajesEntity model)
{
InformacionEntity Info = new InformacionEntity();
Info.error = false;
model.usuarioCreacion = User.Identity.Name;
if (HttpContext.Session["Lista"] != null && model.mensaje != null)
{
List<ContactoEntity> lista = HttpContext.Session["Lista"] as List<ContactoEntity>;
int idTransaccion = mdm.EnviarMensajes(model, lista, 1);
if (idTransaccion > 0)
{
Info = mdm.InformacionDeEnvio(idTransaccion);
Info.error = false;
}
else
{
//error
Info.error = true;
Info.mensajeError = "error.";
}
}
else
{
// tiene q tener contactos agregados
Info.error = true;
Info.mensajeError = "error";
}
var js = new JavaScriptSerializer();
var Data = new ContentResult();
js.MaxJsonLength = Int32.MaxValue;
Data.Content = js.Serialize(Info);
Data.ContentType = "application/json";
return Data;
}
может быть связан: http: //stackoverflow.com/questions/23293886/mvc-uppercase-model-vs-lowercase-model –
Вам не нужно использовать символ '@' перед 'Model', если' Символ @ 'находится перед оператором' if'. –
Я уже удалил символ @, но не повезло. –