Asp.Net Jádro MultiSelect SelectList Po Problému

0

Otázka

Když jsem odešlete formulář, uživatelské dovednosti přijdou. Používám mnoho na mnoho vztahů, ale vždy počítat 0 na post akce

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>
asp.net asp.net-core selectlist
2021-11-23 07:21:07
2
0

Zkuste přidat List<int> typ nemovitosti typ dat User vázat vybrané skillids.

public class User : IEntity
{
    ...
    public List<int> SelectedSkillIds { get; set; }
}

A pak zkuste změnit název <select></select> k SelectedSkillIds.Protože .net jádro bind data s name atribut.

<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>
2021-11-24 10:07:42
0

Musíte mít novou vlastnost, jako SelectedUserSkillId v ViewModel a vázat to na 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
}

Také je třeba uvést, že 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>

Viz: Vyberte Tag Pomocník v ASP.NET Základní MVC

2021-11-24 11:44:54

Díky vaší odpověď, ale didnt práce.
Yalçın

Co nefunguje přesně?
Selim Yildiz

Když jsem odešlete formulář, uživatelské dovednosti počítat pojď 0 (nula).
Yalçın

Jste si jisti, že jste kontrolu SelectedUserSkillIds ne UserSkills?
Selim Yildiz

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................