当前位置: 首页 > 编程语言 > C#

CascadingDropdownListUsingMVC5,Ajax,C#,andMSSQLServer分享

时间:2023-04-10 15:52:52 C#

CascadingDropdownListUsingMVC5,Ajax,C#,andMSSQLServer来自WindowsForms和3层架构,对MVC很陌生。我试图弄清楚从数据库中填充的级联下拉列表(DDL)的使用。我正在使用MSSQLServer2012,VS2013目前我正在处理用户问卷,用户可以从DDL的多个答案中进行选择。根据某些选择,我需要更改下一个问题的答案(再次是DDL)。数据库:表DDLStacks:StackId|堆栈名称1|浆果2|BerryColor3....表DDLStackContents(SCId堆栈内容id,索引目的)SCId|堆栈编号|群组编号|键|值------------------------------------1|1|空|1|葡萄2|1|空|2|鳄梨3|1|3|香蕉4|2|空|1|黄色5|2|空|2|绿色6|2|1|3|红7|2|1|4|橙色8...程序:CREATEPROCEDURE[dbo].[spDLLSelect]@p_StackName_inVARCHAR(20),@p_GroupId_inInt=nullASBEGINSELECT[Key],ValueFROMDDLStackContentsWHEREStackIDIN(SELECTStackIdFROMDDLStacksWHEREStackName=@p_StackName_in)AND(GroupId=@p_GroupId_inOR@p_GroupId_inISnull)OrderBy[Key]END如您所见,DDLStacks存在问题,而DDLStackContents提供了该问题的可能答案。如果有一组,我们只能从该组中选择答案,否则选择特定堆栈的所有答案。现在我创建了一个ADO.NET实体数据模型来访问spDLLSelect。现在我的水果模型是这个publicclassFruitModel{publicIEnumerableBerryList{get;放;}publicIEnumerableBerryColorList{get;放;}[Display(Name="Berry")]公共字节?浆果{得到;放;}[Display(Name="BerryColor")]公共字节?浆果色{得到;放;我的控制器是这个,我需要根据浆果的类型选择颜色。如果Avacado全选,如果香蕉只选择第1组。publicclassHomeController:Controller{publicActionResultIndex(){CherryEntitiesdb=newCherryEntities();varmodel=newFruitModel();model.BerryList=newSelectList(db.spDLLSelect("Berry",null),"Key","Value");//model.BerryColorList=newSelectList(db.spDLLSelect("BerryColor",null),"Key","Value");//model.BerryColorList=newSelectList(db.spDLLSelect("BerryColor",1),"Key","Value");返回视图(模型);这是我的观点:@using(Html.BeginForm("Register2","Account",FormMethod.Post,new{@class="form-horizo??ntal",role="form"})){@Html.LabelFor(m=>m.Berry,new{@class="col-md-2control-label"})@Html.DropDownListFor(m=>m.Berry,Model.BerryList,"请选择")@Html.LabelFor(m=>m.BerryColor,new{@class="col-md-2control-label"})@Html.DropDownListFor(m=>m.BerryColor,Model.BerryColorList,"PleaseSelect")}这是我的基本编码,我已经尝试了各种方法来让它工作,我想看看使用ajaxSTRONGLYTyped代码方法执行此操作的正确方法。也许正在使用局部视图?有任何想法吗?您已经有了一个模型,并且您的视图是强类型的。您需要做的就是向下拉列表添加更改事件(有关更多信息,请参见下面的参考链接)。在change事件中可以根据选择的值加载值,比如选择了Berry,则需要获取Berry、Grape、Avocado对应的值。您可以使用JavaScript加载值,这在您有大量数据时很有用。或者您可以预加载包含所有数据的视图,在这种情况下,您只需根据在UI上选择的问题过滤答案。有关如何在实践中执行此操作的帮助,请参阅MVC4中的级联DropDownList。您可以找到满足您需要的类似示例。以上就是C#学习教程:使用MVC5、Ajax、C#和MSSQLServer级联DropdownList的全部内容分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处: