使用linq命令选择所有记录的单个列的数据
我想使用Linq命令选择所有记录的特定列的数据使用linq命令选择所有记录的单个列的数据,linq,Linq,我想使用Linq命令选择所有记录的特定列的数据 [HttpGet] public ActionResult DeleteRole(RoleManager model) { string [] getRole = (from r in Session.Query<RoleManager>() select r.roleName).ToArray(); foreach( var m
[HttpGet]
public ActionResult DeleteRole(RoleManager model)
{
string [] getRole = (from r in Session.Query<RoleManager>()
select r.roleName).ToArray();
foreach( var myrole in getRole)
{
model.roleName = myrole.roleName;
}
return View(model);
}
[HttpGet]
公共行动结果删除角色(角色管理器模型)
{
字符串[]getRole=(来自Session.Query()中的r)
选择r.roleName).ToArray();
foreach(getRole中的var myrole)
{
model.roleName=myrole.roleName;
}
返回视图(模型);
}
但它不起作用。请您指导我。您尝试选择
roleName
两次-您已经做了正确的事情,第一次选择了它。您还多次覆盖模型中的roleName
字段/属性,而您可能希望保留所有值。老实说,model
到底要做什么还不清楚,但你应该能够创建一个角色视图:
[HttpGet]
public ActionResult DeleteRole(RoleManager model)
{
string[] roles = (from r in Session.Query<RoleManager>()
select r.roleName).ToArray();
return View(roles);
}
。。。或者,如果确实需要修改模型,则需要模型本身来支持多个角色
请注意,这实际上并没有执行任何删除操作,因此在我看来,这是一个相当奇怪的操作名称…在本例中,什么是
rolemager
?为什么你的DeleteRole
方法实际上没有删除任何内容?在将来,请提供比“它不起作用”更详细的信息,这就像去看医生,说“我不舒服”,并期待没有更多信息的诊断。我只是在HttpGet方法中定义角色的值,我正在HttpPost方法中删除它。我尝试了您的答案2,但出现了错误传递到字典中的模型项的类型为“System.String[]”,但此字典需要“MvcMembership.Models.RoleManager”类型的模型项@Wasfa:是的,你也需要改变观点——但从根本上说,你需要弄清楚你想做什么。如果这不是删除角色,您不应该将其称为DeleteRole
IMO。如果您想要单一模型,该模型需要包含视图中所需的所有内容-这可能意味着其中包含一组角色名称。@jonsket如果路径..../deleterole显示了可能在后续文章中删除的角色,这有什么问题?在我看来似乎合乎逻辑。@happygilmore:这不是删除角色,而是显示角色。我会使用一个只显示它们的URL,然后使用deleterole URL进行实际删除。无论如何,这显然不是问题所在——只是一个旁注而已。
[HttpGet]
public ActionResult DeleteRole(RoleManager model)
{
string[] roles = Session.Query<RoleManager>()
.Select(r => r.roleName)
.ToArray();
return View(roles);
}