从2个下拉框中传递值

时间:2011-05-31 10:19:01

标签: c# asp.net-mvc

我有两个不同的下拉框,其中包含预填充的选择项。我试图传递所有用户选定的项目并根据它返回数据。我能够根据第一个下拉列表检索数据,但是第二个下拉列表'null'被传入。这是我的代码:

resultSummaryViewModel.ReportFrame = new FramedViewModel();
if (string.IsNullOrEmpty(resultSummaryViewModel.Value)) return;
string viewValue = resultSummaryViewModel.Value.Substring(0, resultSummaryViewModel.Value.IndexOf("|"));
string viewType = resultSummaryViewModel.Value.Substring(resultSummaryViewModel.Value.IndexOf("|") + 1);
//if (string.IsNullOrEmpty(resultSummaryViewModel.CValue)) return;
string cTypeValue = resultSummaryViewModel.CValue.Substring(0, resultSummaryViewModel.CValue.IndexOf("|"));
string cType = resultSummaryViewModel.CValue.Substring(resultSummaryViewModel.CValue.IndexOf("|") + 1);
resultSummaryViewModel.ReportFrame.SourceURL = WebPathHelper.MapUrlFromRoot(
   string.Format("Reporting/ResultSummary.aspx?beginDate={0}&endDate={1}&Id={2}&viewType={3}&cTypeValue={4}&cType={5}",
      resultSummaryViewModel.BeginDate, 
      resultSummaryViewModel.EndDate, 
      viewValue,viewType, 
      cTypeValue,cType));

如果还有另一种方法可以从列表中取回选定的项目,那也很棒。谢谢。

1 个答案:

答案 0 :(得分:0)

我必须先对我的选择进行编码,然后将其传递到网址中:

 string caseType = null;
        if (!String.IsNullOrEmpty(viewModel.CaseTypeValue))
        {
            caseType = HttpUtility.UrlEncode(viewModel.CaseTypeValue, System.Text.Encoding.Default);
        }
从那里起,对我来说效果很好