Mis*_*isi 2 asp.net asp.net-mvc entity-framework cascadingdropdown asp.net-mvc-4
我有一个带有EF的ASP.NET MVC 4项目我有一个包含Parteners的表.此表有两种类型的合作伙伴:代理(part_type = 1)和客户端(part_type = 2).在Create视图中,我有第一个显示所有代理的DropDownList,一个按钮和第二个DDL,它显示了与所选代理对应的所有客户端.Q1:我用什么按钮?,, @ Html.ActionLink()?Create.cshtml
<div class="editor-field">
@Html.DropDownList("idagenti", ViewData["idagenti"] as List<SelectListItem>, String.Empty)
</div>
@*a button*@
<div class="editor-label">
@Html.LabelFor(model => model.id_parten, "Client")
</div>
<div class="editor-field">
@Html.DropDownList("id_parten", String.Empty)
@Html.ValidationMessageFor(model => model.id_parten)
</div>
Run Code Online (Sandbox Code Playgroud)
OrdersController.cs
public ActionResult Create(int? id) // id is the selected agent
{
var agqry = db.partener.Where(p => p.part_type == 1).Where(p => p.activ == true);
var cltqry = db.partener.Where(p => p.part_type == 2).Where(p => p.activ == true);
List<SelectListItem> idagenti = new List<SelectListItem>();
foreach (partener ag in agqry)
{
idagenti.Add(new SelectListItem { Text = ag.den_parten, Value = ag.id_parten.ToString() });
}
if (id != null)
{
cltqry = cltqry.Where(p => p.par_parten == id);
}
ViewData["idagenti"] = idagenti;
ViewBag.id_parten = new SelectList(cltqry, "id_parten", "den_parten");//
}
Run Code Online (Sandbox Code Playgroud)
问:如何将选定的代理ID从第一个DDL传递给我的控制器?
以下形式是基于所选性别(男性或女性)的情况,显示性别的标题(男性先生,女性夫人).
使用Ajax.Begin()
帮助程序,您可以回发到控制器并将值返回到视图.
所有数据都是硬编码的,请原谅手动添加信息.
查看 - Form.cshtml
<fieldset>
<legend>Form</legend>
@* This will post to the BindTitles method in the Form Controller *@
@using (Ajax.BeginForm("BindTitles", "Form", new AjaxOptions
{
HttpMethod = "POST"
}))
{
<p>
@Html.DropDownList("Genders")
</p>
<p>
<input type="submit" value="Submit" />
</p>
}
<p>
@Html.DropDownList("Titles")
</p>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
控制器 - FormController
public ActionResult Form()
{
List<string> genderList = new List<string>();
genderList.Add("Male");
genderList.Add("Female");
ViewBag.Genders = new SelectList(genderList);
ViewBag.Titles = new SelectList(new List<string>());
return View();
}
[HttpPost]
public ActionResult BindTitles(string genders)
{
List<string> titles = new List<string>();
if (genders == "Male")
{
titles.Add("Mr.");
titles.Add("Sr.");
}
else
{
titles.Add("Ms.");
titles.Add("Mrs.");
}
ViewBag.Titles = new SelectList(titles);
List<string> genderList = new List<string>();
genderList.Add("Male");
genderList.Add("Female");
ViewBag.Genders = new SelectList(genderList);
return View("Form");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11300 次 |
最近记录: |