Заполните комбинированный список в ASP.NET MVC данными из службы WCF - PullRequest
1 голос
/ 30 июня 2019

Я создал базовое приложение, которое работает со службой WCF.Приложение выполняет основные операции удаления обновлений вставки.

Я определил свой IService интерфейс следующим образом:

[ServiceContract]
public interface IService1
{
        [OperationContract]
        IEnumerable<Person> GetPersons();
        [OperationContract]
        IEnumerable<Person> GetPersonsByFNameAndLName(string FName,string LName);
        [OperationContract]
        void InsertPerson(Person personobj);
        [OperationContract]
        void UpdatePerson(Person personobj);
        [OperationContract]
        void DeletePerson(int id);
}

[DataContract]
public class Person
{
        [DataMember]
        [Key]
        [Required]
        public int Id { get; set; }

        [DataMember]
        [Required]
        public string FName { get; set; }

        [DataMember]
        [Required]
        public string MName { get; set; }

        [DataMember]
        [Required]
        public string LName { get; set; }

        [DataMember]
        [Required]
        public DateTime DOB { get; set; }

        [DataMember]
        [Required]
        public string Adddress { get; set; }

        [DataMember]
        [Required]
        public string NIC { get; set; }
}

Это код моего файла класса service1.svc.cs (в нем есть сегменты кода для методов для получения спискалиц и обновление человека)

public class Service1 : IService1
{
        public IEnumerable<Person> GetPersons()
        {
            List<Person> personList = new List<Person>();
            PersonContext po = new PersonContext();
            personList = po.Persons.ToList();
            return personList;
        }

        public void UpdatePerson(Person personobj)
        {
            PersonContext po = new PersonContext();
            var c = (from per in po.Persons
                     where per.Id == personobj.Id
                     select per).First();
            c.FName = personobj.FName;
            c.LName = personobj.LName;
            c.MName = personobj.MName;
            po.SaveChanges();
        }
}

и мой контекстный класс базы данных выглядит следующим образом:

public class PersonContext : DbContext
{
        public PersonContext() : base("PersonCS")
        {
        }

        public DbSet<Person> Persons { get; set; }    
}

Я использую PersonCS соединение с базой данных в файле web.config для подключения к моей базе данных,

Я добавил эту службу в качестве ссылки на службу в мой проект ASP.NET MVC.

Это мой код класса контроллера в моем проекте ASP.NET MVC.Сегмент кода имеет методы для просмотра и обновления.

public class PersonController : Controller
{
        public ActionResult getPersons()
        {
            Service1Client SEObj = new Service1Client();
            List<Person>PeLi =SEObj.GetPersons().ToList();
            ViewBag.List = PeLi;
            return View();
        }

        public ActionResult updatePerson()
        {
            return View();
        }

        [HttpPost]
        public ActionResult updatePerson(Person personobj)
        {
            Service1Client SCOBJ = new Service1Client();
            SCOBJ.UpdatePerson(personobj);
            return View();
        }
} 

Вот мой код позади представления:

<form method="post" action="@Url.Action("updatePerson")">

    ID:<input type="text" name="Id" /> 
    <br />
    First Name: <input type="text" name="FName" />
    <br />
    Middle Name: <input type="text" name="MName" />
    <br />
    Last Name: <input type="text" name="LName" />
    <br />
    Date of Birth:<input type="date" id="start" name="DOB" value="2018-07-22" min="1900-01-01" max="2000-12-31" />
    <br />
    NIC:<input type="text" name="NIC" />
    <br />
    Address:<input type="text" name="Adddress" />
    <br />
    <input type="submit" value="Insert" />

</form>

В представлении я пытаюсь вручную ввести идентификатор и удалить,

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

Может ли кто-нибудь помочь мне или направить меня к этому?

1 Ответ

2 голосов
/ 30 июня 2019

Я бы предложил передать List<SelectListItems> на ваш взгляд.Это уменьшит трафик от вашего контроллера к вашему представлению:

public ActionResult updatePerson()
{
    Service1Client SEObj = new Service1Client();
    List<Person>PeLi =SEObj.GetPersons().ToList();
    ViewBag.List = PeLi.Select(x => new SelectListItems {
        Value = x.Id,
        Text = x.FName + " " + x.LName
    });

    return View();
}

В ViewBag.List теперь есть List<SelectListItems> ваших лиц.

в представлении, вам просто нужно отобразить этот списоккак:

@Html.DropDownList("personId", new SelectList(ViewBag.List, "Value", "Test"))

Это отобразит выпадающий список.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...