C# 如何将值从控制器a传递到视图(a),然后从视图(a)传递到控制器B?

C# 如何将值从控制器a传递到视图(a),然后从视图(a)传递到控制器B?,c#,ajax,asp.net-mvc,view,viewdata,C#,Ajax,Asp.net Mvc,View,Viewdata,在我的sql表中有一个字段类型为nvarchar,它是AvailableSizes,值为40,41,42,43。我想使用.split()方法在控制器A中拆分这些字符串,然后将其作为单个选择列表传递给下拉列表中的视图A。从视图(a)中,我想将所选值let假设值42传递给B控制器,我应该怎么做?我无法为此编写一个代码,因为我不知道怎么做?任何现实的例子都将不胜感激。因此,首先您可以创建一个视图模型,该模型将包含选择和所选值 public class MyViewModel { public

在我的sql表中有一个字段类型为nvarchar,它是AvailableSizes,值为40,41,42,43。我想使用
.split()
方法在控制器A中拆分这些字符串,然后将其作为单个选择列表传递给下拉列表中的视图A。从视图(a)中,我想将所选值let假设值42传递给B控制器,我应该怎么做?我无法为此编写一个代码,因为我不知道怎么做?任何现实的例子都将不胜感激。

因此,首先您可以创建一个视图模型,该模型将包含选择和所选值

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
视图中,可以使用
Html.DropDownListFor
方法呈现下拉列表。您需要将其封装在
Html.BeginForm
语句中,该语句将发布到
ControllerB
ActionB

@model So_MVC.Models.MyViewModel

@using (Html.BeginForm("ActionB", "ControllerB", FormMethod.Post))
{
    @Html.DropDownListFor(m => m.ChosenSize, Model.SizeChoicesSelectList)
    <input type="submit" value="Submit" />
}

因此,首先可以创建一个视图模型,该模型将同时保存选项和所选值

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
视图中,可以使用
Html.DropDownListFor
方法呈现下拉列表。您需要将其封装在
Html.BeginForm
语句中,该语句将发布到
ControllerB
ActionB

@model So_MVC.Models.MyViewModel

@using (Html.BeginForm("ActionB", "ControllerB", FormMethod.Post))
{
    @Html.DropDownListFor(m => m.ChosenSize, Model.SizeChoicesSelectList)
    <input type="submit" value="Submit" />
}

你能提供一个代码示例吗?@Vladimir真的不知道怎么做。你能提供一个代码示例吗?@Vladimir真的不知道怎么做。