Как использовать выпадающий список для выбора элемента из базы данных MVC CRUD? - PullRequest
0 голосов
/ 17 апреля 2020

В настоящее время я работаю над новым веб-приложением, используя. net core MVC, и в настоящее время мне нужен раскрывающийся список для выбора элемента. (Я хотел показать имя и сохранить его идентификатор) Вид (Edit.cs html)

    @model AdminLTE.Models.Edits1 
    @{
        ViewBag.Title = "Edit";
    }
    <h2>Editar</h2>

    @using (Html.BeginForm())
    {
@Html.AntiForgeryToken()
<div class="form-horizontal">
    <h4>Edits</h4>
    @Html.ValidationSummary(true)
    @Html.HiddenFor(model => model.Id2)
    <div class="form-group">
        @Html.LabelFor(model => model.Id1, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Id1)
            @Html.ValidationMessageFor(model => model.Id1)
        </div>
    </div>
    <div class="form-group">
        @Html.LabelFor(model => model.Codigo, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Codigo)
            @Html.ValidationMessageFor(model => model.Codigo)
        </div>
    </div>
    <div class="form-group">
        @Html.LabelFor(model => model.Nome, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Nome)
            @Html.ValidationMessageFor(model => model.Nome)
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Guardar" class="btn btn-primary" />
            <a class="btn btn-default" asp-controller="Edit" asp-action="Index">Voltar</a>
        </div>
    </div>
</div>
    } 

Контроллер (Раздел редактирования)

public ActionResult Edit(int? id)
 {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Edits edits = _context.Edits.Find(id);
            ViewBag.Othermodel = GetOthermodel();
            if (edits == null)
            {
                return HttpNotFound();
            }
            return View(edits);
}
private ActionResult HttpNotFound()
 {
   throw new HttpException(404, "Page Not Found");
 }
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind("Id2,Id1,Codigo,Nome")] Edits edits)
 {
    if (ModelState.IsValid)
      {
         _context.Entry(edits).State = EntityState.Modified;
         _context.SaveChanges();
         return RedirectToAction("Index");
      }
            return View(edits);
 } 
 private List<Othermodel> GetOthermodel()
    {
            List<Othermodel> othermodel = _context.Othermodel.ToList();
            return othermodel;
    }
 private List<Edits> GetEdits()
    {
            List<Edits> edits = _context.Edits.ToList();
            return edits;
    }

Как сделать Я получаю форму редактирования для получения данных от правильного контроллера (Edits) вместо (Edits1) и как получить выпадающий список для Id1 (показывая имя вместо id) (некоторые изменения в именах vars)

1 Ответ

0 голосов
/ 17 апреля 2020

Так что мне удалось получить это, чтобы показать выпадающий список, но теперь мне нужен способ обновить редактирование.


    IEnumerable<Edit> edits = ViewData["Edits"] as IEnumerable<Edit>;
    IEnumerable<Othermodel> models = ViewData["Othermodels"] as IEnumerable<Othermodel>;
} ``` 
```   <div class="form-group">
        @Html.LabelFor(model => model.Id2, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            <select id="dropdowntipo">
                <option value="0">Editse</option>
 @{
                    foreach (Othermodel model in model)
                    {
                        @foreach (Edit edit in edits)
                        {

                            <option value="@model.Id2">@model.Name</option>
                            @if (edit.Id2 == model.Id2)
                            {


                            }
                         }
                    }
                 }
            </select>
        </div>
    </div> ```

...