C# 使用来自WCF服务的数据填充ASP.NET MVC中的combobox
我已经创建了一个与WCF服务一起工作的基本应用程序。应用程序执行基本的插入更新删除操作 我定义了我的C# 使用来自WCF服务的数据填充ASP.NET MVC中的combobox,c#,asp.net-mvc,wcf,drop-down-menu,C#,Asp.net Mvc,Wcf,Drop Down Menu,我已经创建了一个与WCF服务一起工作的基本应用程序。应用程序执行基本的插入更新删除操作 我定义了我的iSeries设备接口,如下所示: [ServiceContract] public interface IService1 { [OperationContract] IEnumerable<Person> GetPersons(); [OperationContract] IEnumerable<Person&g
iSeries设备接口,如下所示:
[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; }
}
我的数据库上下文类如下所示:
public class PersonContext : DbContext
{
public PersonContext() : base("PersonCS")
{
}
public DbSet<Person> Persons { get; set; }
}
以下是我在视图后面的代码:
<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>
身份证件:
名字:
中名:
姓氏:
出生日期:
NIC:
地址:
在视图中,我试图手动输入ID并删除
我要做的是用数据库中可用的ID填充一个组合框,并从组合框中的ID中进行选择
有谁能帮助我或指导我实现这一点吗?我建议将列表传递给您的视图。这将减少从控制器到视图的流量:
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中的值。里面有什么?这行有值吗?”ListPeLi=SEObj.GetPersons().ToList();'不,页面甚至没有被加载。在转到该行之前,将调用视图。我想说的是:你需要把我写的代码放在你的控制器操作中,当你点击你的页面时,它会被加载。这应该会显示一个下拉列表。现在它可以正常工作了。如果您现在可以帮助我,我还有一个问题,现在当我的post方法返回其中的视图时,它在这行代码的视图中给出了null异常错误。您建议如何克服这个问题?
<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>
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();
}
@Html.DropDownList("personId", new SelectList(ViewBag.List, "Value", "Test"))