/ / Comment comparer la valeur de viewbag avec le modèle d'une autre valeur dans mvc 4 - asp.net-mvc, entity-framework, razor

Comment comparer la valeur de viewbag avec le modèle d'une autre valeur dans mvc 4 - asp.net-mvc, entity-framework, rasoir

J'essaie d'envoyer viewbag de la méthode d'action àvue. Lorsque la première page sera chargée, la valeur de viewbag sera nulle. lorsque j'appelle la méthode d'action CheckPermissions viewbag obtient une certaine valeur et renvoie le même point de vue, que time viewbag contient une certaine valeur et que je souhaite maintenant comparer la valeur de viewbag avec une autre valeur. J'ai essayé mais l'erreur suivante est apparue. Impossible d'effectuer une liaison d'exécution sur une référence null. Ceci est mon code de vue d'index.

@model c3card.Models.GroupPermissionVM
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm())
{
@Html.LabelFor(m=>m.GroupID)
@Html.DropDownListFor(m => m.GroupID, Model.GroupList, "Please select", new { id = "ddlgrp" })
foreach(var permission in Model.Permissions)
{
if (ViewBag.marlid.equals(permission))
{
<label>
@Html.RadioButtonFor(m => m.perm_id, permission.perm_id, new {@checked="true"})
<span>@permission.perm_levelname</span>
</label>
}
else
{
<label>
@Html.RadioButtonFor(m => m.perm_id, permission.perm_id)
<span>@permission.perm_levelname</span>
</label>

}
}

C'est ma méthode d'action

public ActionResult CheckPermissions(int id)
{
var groups = db.tm_grp_group.Where(a => a.grp_isactive == true);
var permissions = db.tm_perm_level;
GroupPermissionVM model = new GroupPermissionVM
{
marlid=db.ts_grp_perm_mapping.Select(p=>p.grp_id==id).Count(),
GroupList = new SelectList(groups, "grp_id", "grp_name"),
Permissions = permissions.Select(p => new PermissionVM
{
perm_id = p.perm_id,
perm_levelname = p.perm_levelname

})
};
ViewBag.marlid = db.ts_grp_perm_mapping.Select(p => p.grp_id == id).Count();

return View("Index",model);
}

Toute suggestion pourquoi je ne suis pas capable de comparer les valeurs à l'intérieur si condition? Merci d'avance. Cette ligne me causant une erreur if (ViewBag.marlid.equals (permission)) J'ai édité comme suit

foreach(var permission in Model.Permissions)
{
if(Model.marlid==permission.perm_id)
{
<label>
@Html.RadioButtonFor(m => m.perm_id, permission.perm_id,new { @checked = true } )@Model.marlid.ToString()
<span>@permission.perm_levelname</span>
</label>

}

Réponses:

3 pour la réponse № 1

Vous pouvez changer le code donné ci-dessous

if(ViewBag.marlid != null && Model.Permissions != null)
{
foreach(var permission in Model.Permissions)
{
if(ViewBag.marlid == permission.perm_id)
{
<label>
@Html.RadioButtonFor(m => m.perm_id, permission.perm_id,new { @checked = true } )@Model.marlid.ToString()
<span>@permission.perm_levelname</span>
</label>
}
}
}

J'espère que cela t'aides.