這是在動作控制器的選擇列表,MVC 5 asp.net選擇列表的使用WHERE條件
ViewBag.UserName = new SelectList(db.Users.Where(g => g.UserName == User.Identity.GetUserName()), "UserName", "UserName");
這我傳遞到視圖:
<div class="form-group">
@Html.LabelFor(model => model.UserName, "UserName", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("UserName", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
</div>
</div>
和它不工作埃羅:
LINQ實體無法識別方法 'System.String GetUserName(System.Security.Principal.IIdentity)' 方法,和這個 方法不能被翻譯成商店表達式。
您不能在任何Linq表達式中使用函數調用'User.Identity.GetUserName()'。你可以做的是首先獲得'User.Identity.GetUserName()'的值到一個變量中,然後在你的LINQ表達式中使用該變量 –