Asp.net mvc 将RadioButton值传递给控制器

Asp.net mvc 将RadioButton值传递给控制器,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我试图将一个单选按钮值传递给控制器。然而,我似乎不知道如何获得我传递的值。我不知道如何处理控制器 我用来保持价值的模型 public class PendingTasksModel { public string environmentName { get; set; } } 看法 @Html.radioButton(model=>model.environmentName,“OAK”) 橡树 @Html.RadioButton(model=>model.environmentNam

我试图将一个单选按钮值传递给控制器。然而,我似乎不知道如何获得我传递的值。我不知道如何处理控制器

我用来保持价值的模型

public class PendingTasksModel
{
    public string environmentName { get; set; }
}
看法


@Html.radioButton(model=>model.environmentName,“OAK”)
橡树
@Html.RadioButton(model=>model.environmentName,“QA”)
质量保证
@Html.radioButton(model=>model.environmentName,“PROD”)
戳
控制器

public ActionResult InitializeService(PendingTaskModel model)
    {
        _binding = new BasicHttpBinding();
        if (model.environmentName == "OAK")
        {
            _endpointAddress = new EndpointAddress(ConfigurationManager.AppSettings["OAK"]);
        }
        else if (model.environmentName == "PROD")
        {
            _binding.Security.Mode = BasicHttpSecurityMode.Transport;
            _endpointAddress = new EndpointAddress(ConfigurationManager.AppSettings["PROD"]);
        }
        else
        {
            _binding.Security.Mode = BasicHttpSecurityMode.Transport;
            _endpointAddress = new EndpointAddress(ConfigurationManager.AppSettings["QA"]);
        }
        _channel = new ChannelFactory<IEisIntegrationService>(_binding, _endpointAddress);

        try
        {
            _target = _channel.CreateChannel();


        }
        catch
        {
            if (_target != null)
            {
                ((ICommunicationObject)_target).Abort();
            }
        }
        return View();
    }
PublicActionResult InitializeService(PendingTaskModel模型)
{
_binding=新的BasicHttpBinding();
如果(model.environmentName==“OAK”)
{
_endpointAddress=新的endpointAddress(ConfigurationManager.AppSettings[“OAK”]);
}
else if(model.environmentName==“PROD”)
{
_binding.Security.Mode=BasicHttpSecurityMode.Transport;
_endpointAddress=新的endpointAddress(ConfigurationManager.AppSettings[“PROD”]);
}
其他的
{
_binding.Security.Mode=BasicHttpSecurityMode.Transport;
_endpointAddress=新的endpointAddress(ConfigurationManager.AppSettings[“QA”]);
}
_通道=新的通道工厂(_绑定,_端点地址);
尝试
{
_target=_channel.CreateChannel();
}
抓住
{
如果(_target!=null)
{
((ICommunicationObject)_target).Abort();
}
}
返回视图();
}

为了让MVC基础设施自动将表单字段连接到控制器,您需要确保参数名称和类型匹配。尝试将
string选项
参数更改为
PendingTasksModel模型
,然后在if语句中选中
model.environmentName
。或者,将
string选项
更改为
string环境名称

好的,我做了上述更改。然而,由于某些原因,似乎从未到达InitializeService方法。我必须在我的视图中使用@Html.Action还是什么?你有BeginForm和submit按钮吗?
public ActionResult InitializeService(PendingTaskModel model)
    {
        _binding = new BasicHttpBinding();
        if (model.environmentName == "OAK")
        {
            _endpointAddress = new EndpointAddress(ConfigurationManager.AppSettings["OAK"]);
        }
        else if (model.environmentName == "PROD")
        {
            _binding.Security.Mode = BasicHttpSecurityMode.Transport;
            _endpointAddress = new EndpointAddress(ConfigurationManager.AppSettings["PROD"]);
        }
        else
        {
            _binding.Security.Mode = BasicHttpSecurityMode.Transport;
            _endpointAddress = new EndpointAddress(ConfigurationManager.AppSettings["QA"]);
        }
        _channel = new ChannelFactory<IEisIntegrationService>(_binding, _endpointAddress);

        try
        {
            _target = _channel.CreateChannel();


        }
        catch
        {
            if (_target != null)
            {
                ((ICommunicationObject)_target).Abort();
            }
        }
        return View();
    }