我的sql表中有一个nvarchar字段类型,它是Availableblsizes,值类似于40,41,42,43。我想使用.split()
方法在控制器A中拆分这些字符串,然后将其传递给下拉列表中的单个选择列表。从视图(a)我想传递选定的值让假设值42到B控制器,我应该怎么做?我无法为此编写单一代码,因为我不知道该怎么做?任何现实的例子都会非常感激。
答案 0 :(得分:2)
首先,您可以创建一个既包含选项又包含所选值的视图模型。
{
camelCase = "";
"camelCaseWith space" = "";
"camelCaseWith/special" = "";
"camelCaseWith__suffix" = "";
simple = "";
}
在public class MyViewModel
{
public MyViewModel()
{
SizeChoices = new List<int>();
}
public int ChosenSize { get; set; }
public IEnumerable<int> SizeChoices { get; set; }
public SelectList SizeChoicesSelectList
{
get
{
return new SelectList(SizeChoices);
}
}
}
中,您需要构建此视图模型并将其传递给ControllerA
方法。
View
然后,在public ActionResult ViewA()
{
var sizeChoicesFromDb = "40,41,42,43"; // get from db
var myModel = new MyViewModel
{
SizeChoices = sizeChoicesFromDb .Split(',').ToList().ConvertAll(Int32.Parse)
};
return View(myModel);
}
的视图中,您可以使用ControllerA
方法呈现下拉列表。您需要将Html.DropDownListFor
语句包含在Html.BeginForm
ActionB
的{{1}}中。
ControllerB
然后在@model So_MVC.Models.MyViewModel
@using (Html.BeginForm("ActionB", "ControllerB", FormMethod.Post))
{
@Html.DropDownListFor(m => m.ChosenSize, Model.SizeChoicesSelectList)
<input type="submit" value="Submit" />
}
的{{1}}中,您需要将ActionB
作为参数传递给操作方法。
ControllerB