c# - ASP.NET 使用关联的外键文本值填充下拉列表
问题描述
我对 ASP.NET 非常陌生,目前正在努力将下拉列表绑定到关联的外键表。
我的控制器
public ActionResult Create()
{
//get current user id
ViewBag.UserID = new SelectList(db.UserProfiles, "UserID", "Employer");
return View();
}
我的观点
<div class="form-group">
@Html.LabelFor(model => model.UserID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("UserID", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.UserID, "", new { @class = "text-danger" })
</div>
</div>
我的数据库表
我在浏览器上的视图
我还创建了一个登录名以了解哪些用户已登录
[HttpPost]
public ActionResult Index(UserProfile log)
{
var user = db.UserProfiles.Where(x => x.UserName == log.UserName && x.Password == log.Password).Count();
if (user > 0)
{
return RedirectToAction("Create", "Dashboard");
}
else
{
return View();
}
}
总之,在下拉列表中,我希望看到关联的雇主,因此根据表关系将其级联给用户。如果其他雇主与已登录的用户无关,我不想看到他们。实现这一目标的最佳方法是什么?
解决方案
登录成功后,在重定向到下一页时传递用户 ID。在下一页中使用该用户 ID 从数据库中获取下拉值(其中 userid=loggedinuserid)。现在您将只获得与当前用户相对应的员工。
使用 session 来存储和使用重定向页面中的用户 ID。或者这个链接会帮助你。 带参数的 RedirectToAction
推荐阅读
- google-app-maker - 根据下拉值从 Google App Maker 中的 SQL 数据源中选择字段
- ios - Crashlytics 为混淆应用手动上传 dSYM
- javascript - 如何通过 Javascript SDK 获取亚马逊 S3 存储桶的默认加密设置
- spring-boot-admin - 问题 Spring Boot Admin Server 不显示应用程序
- awk - awk 比较 2 个文件中的多列
- sql - 从 char 更改日期格式
- jsf - Primefaces就地ajax侦听器不发送更新值
- php - JSON到PHP中的多维数组并按键排序
- windows - PE+ 可执行文件中存在 BaseOfCode
- bash - 将对象的 json 数组转换为 bash 关联数组