Полный раскрывающийся список при редактировании с присоединением к таблице в Asp.net MVC 5 - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть три таблицы с именами Person и City и Evidence, чья таблица содержит несколько столбцов, включая FirstName, LastName, cityid (cityID), EvidenceID, идентификатор таблицы (EvidenceID), поля EvidenceID и cityID:внешние ключи и таблица идентификаторов Карты городов, подключенные к Evidence

Теперь я хочу иметь два поля со списком (тег), когда я создаю нового человека, чтобы они могли перечислить их вместо идентификаторагорода и идентификатор доказательства, и перечислите их в поле для ковбоя.

Кроме того, при редактировании я хочу знать, что при переходе к форме редактирования вы можете увидеть название городаи профиль человека на ковбоях, и мы также можем видеть и редактировать другие булыжники.пожалуйста, направьте меня.

[HttpGet] public ActionResult EditPerson (int id) {var q = (из объекта in db.Person, где a.ID.Equals (id) выбирают a) .SingleOrDefault ();

        if (q != null)
        {
            return View(q);
        }
        else
        {
            return RedirectToAction("ShowPerson", "Home");
        }
    }


    [HttpPost]
    public ActionResult EditPerson(Person per)
    {
        var q = (from a in db.Person
                 where a.ID.Equals(per.ID)
                 select a).SingleOrDefault();

        q.FirstName = per.FirstName;
        q.LastName = per.LastName;
        q.UserName = per.UserName;
        q.EvidenceID = per.EvidenceID;
        q.Mobile = per.Mobile;
        q.Stutus = false;
        q.CodeMelli = per.CodeMelli;
        q.CityID = per.CityID;
        q.Address = per.Address;
        q.Access = per.Access;
        q.Email = per.Email;
        q.Image = per.Image;

        db.Person.Attach(q);
        db.Entry(q).State = System.Data.Entity.EntityState.Modified;
        db.SaveChanges();

        return RedirectToAction("ShowPerson", "Home");
    }


    [HttpGet]
    public ActionResult CreatePerson()
    {

        return View();
    }


    [HttpPost]
    public ActionResult CreatePerson(Person per)
    {
        Person p = new Person();

        p.FirstName = per.FirstName;
        p.LastName = per.LastName;
        p.UserName = per.UserName;
        p.EvidenceID = per.EvidenceID;
        p.Mobile = per.Mobile;
        p.Stutus = false;
        p.CodeMelli = per.CodeMelli;
        p.CityID = per.CityID;

        p.Address = per.Address;
        p.Access = per.Access;
        p.Email = per.Email;
        p.Image = per.Image;

        db.Person.Add(p);
        db.SaveChanges();

        return RedirectToAction("ShowPerson", "Home");
    }

код в представлении edit:

        <div class="form-group">

@Html.LabelFor (model => model.CityID, htmlAttributes: new {@class = "контрольная метка col-md-2"}) @ Html.EditorFor (model => model.CityID, new {htmlAttributes = new {@class = "form-control"}}) @ Html.ValidationMessageFor (model => model.CityID, "", new {@class= "text-danger"})

        <div class="form-group">

@Html.LabelFor (model => model.EvidenceID, htmlAttributes: new {@class = "control-label col-md-2"}) @Html.EditorFor (model => model.EvidenceID, new {htmlAttributes = new {@class = "form-control"}}) @ Html.ValidationMessageFor (model => model.EvidenceID, "", new {@class = "text-опасность "})

1 Ответ

0 голосов
/ 13 декабря 2018

Ваш вопрос не понят, но вам нужен выпадающий список из трех разных моделей, как я предполагаю ...

попробуйте это в вашем собственном домене:

var dataForDL = _db.ModelName.Select(a => new
                {
                   Text = a.PersonName +" "+ a.Evidence.Name +" "+ a.City.CityName,
                   Value = a.Id
                }).ToList();
ViewBag.DropdownListForModel = new SelectList(dataForDL, "Value", "Text");

В view.cshtml

@Html.DropDownList("DropdownListForModel", null, "-- Please Select Something --", htmlAttributes: new { @class = "form-control" })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...