我的控件
中有以下操作public ViewResult CreateCollection()
{
string[] stringArray = { "apple", "orange", "plum" };
List<int> intList = new List<int> { 10, 20, 30, 40 };
Dictionary<string, int> myDict = new Dictionary<string, int> { { "apple", 10 }, { "orange", 20 }, { "plum", 30 } };
return View("Result", (object)stringArray[1]);
}
所以,当我想要打印出来时,&#34;橙色&#34; 我使用这个视图:
@model String
@{ Layout = null; }
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Result</title>
</head>
<body>
<div>
@Model
</div>
</body>
</html>
如果我要打印&#34; 20&#34 ;,则从intList中打印一个号码 我将View @model String更改为@model int并在操作中将return parametar stringArray更改为intList。
但我不知道如何从myDict打印任何东西,任何人?
答案 0 :(得分:0)
创建专用视图模型
public class ViewModel
{
public Dictionary<string, int> Fruits {get; set;}
public string SelectedFruit {get; set;}
}
更改控制器操作,以便返回包含新ViewModel
public ActionResult CreateCollection()
{
string[] stringArray = { "apple", "orange", "plum" };
List<int> intList = new List<int> { 10, 20, 30, 40 };
Dictionary<string, int> myDict = new Dictionary<string, int> { { "apple", 10 }, { "orange", 20 }, { "plum", 30 } };
var model = new ViewModel
{
SelectedFruit = stringArray[1],
Fruits = myDict
}
return View("Result", model );
}
更改视图以获取ViewModel
作为模型:
@model LanguageFeatures.Models.ViewModel
@{ Layout = null; }
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Result</title>
</head>
<body>
<div>
Selected Fruit: @Model.SelectedFruit
</div>
<div>
Quantity: @Model.Fruits[Model.SelectedFruit]
</div>
</body>
</html>
您希望在视图中使用的所有信息都必须是模型的一部分的底线(您可以使用ViewBag,Session,ViewData,但它不是将数据传递给视图的首选方式),控制器是负责实例化该模型的那个