當我提交表單時,用戶技能就來了。我使用多對多的關系,但總是在后期操作中計數為 0
public class User : IEntity
{
[Key]
public int id { get; set; }
public Guid userID { get; set; }
public string mongoUserID { get; set; }
public string username { get; set; }
public string password { get; set; }
public string repassword { get; set; }
public string role { get; set; }
public string name { get; set; }
public string surname { get; set; }
public string email { get; set; }
public string phone { get; set; }
public string title { get; set; }
public string education { get; set; }
public string location { get; set; }
public DateTime? birthday { get; set; }
public string image { get; set; } = "user.png";
public bool isActive { get; set; } = true;
public DateTime createdAt { get; set; } = DateTime.Now;
public DateTime? updatedAt { get; set; }
public IList<UserSkill> UserSkills { get; set; }
}
public class Skill : IEntity
{
[Key]
public int id { get; set; }
public Guid skillID { get; set; }
public string mongoSkillID { get; set; }
public string name { get; set; }
public bool isactive { get; set; } = true;
public DateTime createdAt { get; set; } = DateTime.Now;
public DateTime? updatedAt { get; set; }
public IList<UserSkill> UserSkills { get; set; }
}
public class UserSkill
{
public int UserId { get; set; }
public User User { get; set; }
public int SkillId { get; set; }
public Skill Skill { get; set; }
}
[HttpGet]
public async Task<IActionResult> adduser()
{
var skills = await _skillService.GetListByFilter();
if (skills.Count > 0)
{
ViewBag.Skills = skills.Select(x => new SelectListItem()
{
Value = x.id.ToString(),
Text = x.name
});
}
return View();
}
[HttpPost]
public async Task<IActionResult> adduser(User user)
{
}
<div class="form-group col-md-6">
<label>User Skills</label>
<select name="UserSkills" asp-for="UserSkills" asp-items="@(new SelectList(ViewBag.Skills,"Value", "Text"))" class="form-control select2" multiple="multiple" data-placeholder="Select a Skills" style="width: 100%;"></select>
</div>
uj5u.com熱心網友回復:
嘗試添加一個List<int>型別屬性型別資料User來系結選定的技能ID。
public class User : IEntity
{
...
public List<int> SelectedSkillIds { get; set; }
}
然后嘗試將名稱更改<select></select>為SelectedSkillIds。因為.net core 將資料與name屬性系結。
<div class="form-group col-md-6">
<label>User Skills</label>
<select name="SelectedSkillIds" asp-items="@(new SelectList(ViewBag.Skills,"Value", "Text"))" class="form-control select2" multiple="multiple" data-placeholder="Select a Skills" style="width: 100%;"></select>
</div>
uj5u.com熱心網友回復:
你需要有一個像SelectedUserSkillIdin的新屬性ViewModel并將它系結到select
public class User: IEntity
{
[Key]
public int id { get; set; }
...
public IList<UserSkill> UserSkills { get; set; }
public List<string> SelectedUserSkillIds { get; set; } //--> Add a new property
}
此外,您需要指出 select
<div class="form-group col-md-6">
<label>User Skills</label>
<select name="SelectedUserSkillIds" asp-for="SelectedUserSkillIds" asp-items="@(new SelectList(ViewBag.Skills,"Value", "Text"))" class="form-control select2" multiple="multiple" data-placeholder="Select a Skills" style="width: 100%;"></select>
</div>
請參閱:在 ASP.NET Core MVC 中選擇標簽助手
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/366421.html
下一篇:多次使用導航屬性C#EFCore
