请帮我。我的下拉列表显示System.Web.SelectListItem
在调试模式下,但不显示我在列表中定义的实际文本。任何人都可以帮忙吗?如何使控制器具有我在列表中定义的文本。而且我的下拉列表在选择时并不盲目。请帮我
这是它的样子,请看一下
这是我的模型:
public List<SelectListItem> KeywordOptions { get; set; }
public int KeywordOptionsSelected { get; set; }
public List<SelectListItem> MarketandRevenueOptions { get; set; }
public int MarketandRevenueOptionsSelected { get; set; }
public List<SelectListItem> KeywordsList { get; set; }
public int KeywordsListSelected { get; set; }
这是控制器:
public ActionResult WACCtest(string RegionID1, bool HongKong = false, bool China = false, bool marketmultiples = false, bool dcf = false)
{
var objWACC = new WACC();
XmlDocument xmlTmp = webS.GetWaccOptionsIndustries();
objWACC.Industries = new List<Industry>();
XmlDocument nodeCompsTmp = webS._Test_CompsFilter();
objWACC.Companies = new List<ComparableCompanies>();
XmlDocument nodeMktRevenueTmp = webS._Test_MktCapRevenue();
objWACC.MrkCapRevenue = new List<MrkCapAndRevenue>();
XmlNodeList nodeListMktCap1 = nodeMktRevenueTmp.GetElementsByTagName("Mkt_Cap");
XmlNodeList nodeListRevenue = nodeMktRevenueTmp.GetElementsByTagName("Revenue");
for (int i = 0; i < nodeListMktCap1.Count; i++)
{
MrkCapAndRevenue objMktCapRevenue = new MrkCapAndRevenue();
objMktCapRevenue.Mrk_Cap = double.Parse(nodeListMktCap1[i].InnerText.Trim());
objMktCapRevenue.Revenue = nodeListRevenue[i].InnerText.Trim();
objWACC.MrkCapRevenue.Add(objMktCapRevenue);
}
XmlNodeList nodeListCompID = nodeCompsTmp.GetElementsByTagName("Company_ID");
XmlNodeList nodeListCompName = nodeCompsTmp.GetElementsByTagName("Company_Name");
XmlNodeList nodeListStockTicker = nodeCompsTmp.GetElementsByTagName("Stock_Ticker");
XmlNodeList nodeListIPO = nodeCompsTmp.GetElementsByTagName("IPO_Date");
XmlNodeList nodeListCompWeb = nodeCompsTmp.GetElementsByTagName("Company_Website");
XmlNodeList nodeListCompDescr = nodeCompsTmp.GetElementsByTagName("Company_Description");
for (int i = 0; i < nodeListCompID.Count; i++)
{
ComparableCompanies objComparableComps = new ComparableCompanies();
objComparableComps.Company_ID = int.Parse(nodeListCompID[i].InnerText.Trim());
objComparableComps.Company_Name = nodeListCompName[i].InnerText.Trim();
objComparableComps.Stock_Ticker = nodeListStockTicker[i].InnerText.Trim();
objComparableComps.IPO_Date = DateTime.Parse(nodeListIPO[i].InnerText.Trim());
objComparableComps.Company_Website = nodeListCompWeb[i].InnerText.Trim();
objComparableComps.Company_Description = nodeListCompDescr[i].InnerText.Trim();
objWACC.Companies.Add(objComparableComps);
}
//EC: add the columns one by one
XmlNodeList nodeListGICCode = xmlTmp.GetElementsByTagName("GIC_Code");
XmlNodeList nodeListIndName = xmlTmp.GetElementsByTagName("Industry_Name");
XmlNodeList nodeListIndLvl = xmlTmp.GetElementsByTagName("Industry_Level");
XmlNodeList nodeListParentGICCode = xmlTmp.GetElementsByTagName("Parent_GIC_Code");
for (int i = 0; i < nodeListGICCode.Count; i++)
{
Industry indTemp = new Industry();
indTemp.GIC_Code = int.Parse(nodeListGICCode[i].InnerText.Trim());
indTemp.Industry_Name = nodeListIndName[i].InnerText.Trim();
indTemp.Industry_Level = int.Parse(nodeListIndLvl[i].InnerText.Trim());
indTemp.Parent_GIC_Code = 0;
if (indTemp.Industry_Level != 1)
{
indTemp.Parent_GIC_Code = int.Parse(nodeListParentGICCode[i].InnerText.Trim());
} //EC: no need to check the parent if industry level = 1 since it has no parent (will result an exception for level 1)
objWACC.Industries.Add(indTemp);
}
string strValDate = Request.QueryString["ValuationDate"] ?? "2020-01-01";
string strIndustrySelected = Request.QueryString["IndustrySelected"] ?? "0"; // BW: the selected varaables are based on index value
string strLocationSelected = Request.QueryString["LocationSelected"] ?? "1";
string strFV = Request.QueryString["FairValue"] ?? "0.0";
string strRFR = Request.QueryString["RiskFreeRate"] ?? "0.0";
string strBETA = Request.QueryString["Beta"] ?? "0.0";
string strMRPs = Request.QueryString["Mrp"] ?? "0.0";
string strCAPM = Request.QueryString["CAPM"] ?? "0.0";
string strTAXRATE = Request.QueryString["TaxRate"] ?? "0.0";
string strLendingRate = Request.QueryString["LendingRate"] ?? "0.0";
string strWE = Request.QueryString["WE"] ?? "0.0";
string strWD = Request.QueryString["WD"] ?? "0.0";
string strAFTaxCod = Request.QueryString["AFTaxCod"] ?? "0.0";
string strBetaSelected = Request.QueryString["BetaSelected"] ?? "0";
string strMrpSelected = Request.QueryString["MrpSelected"] ?? "0";
string strSizePr = Request.QueryString["SizePremium"] ?? "0.0";
string strCompSpecPr = Request.QueryString["ComSpecPr"] ?? "0.0";
string strLendRatePr = Request.QueryString["LendRatePr"] ?? "0.0";
string strOtherPr = Request.QueryString["OtherPr"] ?? "0.0";
string strIndustries = Request.QueryString["Industries"] ?? "0";
string strKeywordOptions = Request.QueryString["KeywordOptions"] ?? "0";
string strKeywordsSelected = Request.QueryString["KeywordOptionsSelected"] ?? "TEST 2";
string strMarketandRevenueOptionsSelected = Request.QueryString["MarketandRevenueOptionsSelected"] ?? "0";
string strKeywordsListSelected = Request.QueryString["KeywordsListSelected"] ?? "0";
//BW: Define variable as double integer for the selecting Values
int intIndSel = 0;
int intLocSel = 0;
double dblFV = 0.0;
double dblRFR = 0.0;
double dblBeta = 0.0;
double dblMRP = 0.0;
double dblCAPM = 0.0;
double dblTAXRATE = 0.0;
double dblLendingRate = 0.0;
double dblWE = 0.0;
double dblWD = 0.0;
double dblAFTaxCod = 0.0;
int intBetSel = 0;
int intMrpSel = 0;
string[] strVD = new string[3];
DateTime dtVD = new DateTime(2020, 01, 01);
List<string> listIndustry = new List<string>();
int intKeywordsSel = 0;
int intMarketandRevenueOptionsSel = 0;
int intKeywordsListSel = 0;
double dblSP = 0.0;
double dblCSP = 0.0;
double dblLRP = 0.0;
double dblOPR = 0.0;
try { intIndSel = int.Parse(strIndustrySelected); } catch { intIndSel = 0; } //EC: add 1 to take into account of the default item
try { intLocSel = int.Parse(strLocationSelected); } catch { intLocSel = 0; }
try { dblFV = double.Parse(strFV); } catch { dblFV = 0.0; }
try { dblRFR = double.Parse(strRFR); } catch { dblRFR = 0.0; }
try { dblBeta = double.Parse(strBETA); } catch { dblBeta = 0.0; }
try { dblMRP = double.Parse(strMRPs); } catch { dblMRP = 0.0; }
try { dblCAPM = double.Parse(strCAPM); } catch { dblCAPM = 0.0; }
try { dblTAXRATE = double.Parse(strTAXRATE); } catch { dblTAXRATE = 0.0; }
try { dblLendingRate = double.Parse(strLendingRate); } catch { dblLendingRate = 0.0; }
try { dblWE = double.Parse(strWE); } catch { dblWE = 0.0; }
try { dblWD = double.Parse(strWD); } catch { dblWD = 0.0; }
try { dblAFTaxCod = double.Parse(strAFTaxCod); } catch { dblWD = 0.0; }
try { intBetSel = int.Parse(strBetaSelected); } catch { intBetSel = 0; }
try { intMrpSel = int.Parse(strMrpSelected); } catch { intMrpSel = 0; }
try { dblSP = double.Parse(strSizePr); } catch { dblSP = 0.0; }
try { dblCSP = double.Parse(strCompSpecPr); } catch { dblCSP = 0.0; }
try { dblLRP = double.Parse(strLendRatePr); } catch { dblLRP = 0.0; }
try { dblOPR = double.Parse(strOtherPr); } catch { dblOPR = 0.0; }
try { intKeywordsSel = int.Parse(strKeywordsSelected); } catch { intKeywordsSel = 0; }
try { intMarketandRevenueOptionsSel = int.Parse(strMarketandRevenueOptionsSelected); } catch { intMarketandRevenueOptionsSel = 0; }
try { intKeywordsListSel = int.Parse(strKeywordsListSelected); } catch { intKeywordsListSel = 0; }
//BW: For testing purpose add data to list
try
{
listIndustry.Add("Consumer Discretionary");
listIndustry.Add("");
}
catch (Exception e) { Console.WriteLine(e.Message); }
try
{
strVD = strValDate.Split('-');
dtVD = new DateTime(int.Parse(strVD[0].ToString()),
int.Parse(strVD[1].ToString()),
int.Parse(strVD[2].ToString()));
}
catch
{
//dtVD = new DateTime(2018, 12, 31);
dtVD = DateTime.Now;
}
List<SelectListItem> tmpabc = new List<SelectListItem>();
tmpabc.Add(new SelectListItem() { Text = "--Select Location--", Value = "2" });
tmpabc.AddRange(webS.GetWaccOptionsOpLocations());
resetValuesInListOfSelectListItem(tmpabc);
objWACC.LocationList = tmpabc;
List<SelectListItem> tmpbeta = new List<SelectListItem>();
tmpbeta.Add(new SelectListItem() { Text = "--Select Beta--", Value = "2" });
tmpbeta.AddRange(webS.GetWaccOptionsBeta());
resetValuesInListOfSelectListItem(tmpbeta);
objWACC.BetaList = tmpbeta;
List<SelectListItem> tmpmrp = new List<SelectListItem>();
tmpmrp.Add(new SelectListItem() { Text = "--Select Mrp--", Value = "3" });
tmpmrp.AddRange(webS.GetWaccOptionsMRP());
resetValuesInListOfSelectListItem(tmpmrp);
objWACC.MrpList = tmpmrp;
//BW: return a varible that have the values that user select or input from the UI
objWACC.IndustrySelected = intIndSel;
objWACC.LocationSelected = intLocSel;
objWACC.FairValue = dblFV;
objWACC.RiskFreeRate = dblRFR;
objWACC.Beta = dblBeta;
objWACC.Mrp = dblMRP;
objWACC.CAPM = dblCAPM;
objWACC.TaxRate = dblTAXRATE;
objWACC.LendingRate = dblLendingRate;
objWACC.WE = dblWE;
objWACC.WD = dblWD;
objWACC.AFTaxCod = dblAFTaxCod;
objWACC.BetaSelected = intBetSel;
objWACC.MrpSelected = intMrpSel;
objWACC.SizePremium = dblSP;
objWACC.ComSpecPr = dblCSP;
objWACC.LendRatePr = dblLRP;
objWACC.OtherPr = (objWACC.SizePremium + objWACC.ComSpecPr);
objWACC.KeywordOptionsSelected = intKeywordsSel;
objWACC.MarketandRevenueOptionsSelected = intMarketandRevenueOptionsSel;
objWACC.KeywordsListSelected = intKeywordsListSel;
string strOpLocation = objWACC.LocationList[intLocSel].Text;
//string strIndustry = objWACC.IndustryList[intIndSel].Text;
string strIndustry = "";
string strBeta = objWACC.BetaList[intBetSel].Text;
string strMRP = objWACC.MrpList[intMrpSel].Text;
string strIndustrylevel = objWACC.Industries.ToString();
if (strBeta == "Beta WIND" || strBeta == "Beta BDO")
{
//BW: need to add string Industry level to webservice.
XmlDocument xmlWACCSummary = webS.GetWaccSummary(strOpLocation, strIndustry, strValDate, strMRP, strBeta, dblSP / 100, dblCSP / 100, dblLRP / 100);
//BW: Below is a temp solution to check if the returned xml is a valid WACC summary
XmlNodeList nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("Relevered_Beta");
if (nodeWACCTmp[0] == null)
{
return View(objWACC);
}
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("Relevered_Beta");
objWACC.Beta = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("WE");
objWACC.WE = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("WD");
objWACC.WD = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("MRP");
objWACC.Mrp = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("CAPM");
objWACC.CAPM = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("RFR");
objWACC.RiskFreeRate = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("Tax_Rate");
objWACC.TaxRate = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("Lending_Rate");
objWACC.LendingRate = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("COD");
objWACC.AFTaxCod = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("Other_Premium");
objWACC.OtherPr = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("Lending_Rate_Premium");
objWACC.LendRatePr = 100 * Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
nodeWACCTmp = xmlWACCSummary.GetElementsByTagName("WACC");
objWACC.FairValue = Convert.ToDouble(nodeWACCTmp[0].LastChild.InnerText);
}
return View(objWACC);
}
这是视图:
<div class="content" style="width:1000px">
<p><input id="text_tag_input" class="form-control input-sm" type="text"></p>
<br />
<div>
<table id="tbl_posts">
<tbody id="tbl_posts_body">
<tr id="rec-1">
@*BW: These is the dummy data for the keywords selection, when the sql is ready to linked to the model. These will be deleted*@
@{
Model.KeywordOptions = new List<SelectListItem>();
Model.KeywordOptions.Add(new SelectListItem
{
Text = "--Select Option--",
Value = "selectoption1",
});
Model.KeywordOptions.Add(new SelectListItem
{
Text = "Market Cap".ToString(),
Value = "TEST 1",
});
Model.KeywordOptions.Add(new SelectListItem
{
Text = "Revenue",
Value = "TEST 2"
});
Model.KeywordOptions.Add(new SelectListItem
{
Text = "Keywords",
Value = "TEST 3"
});
}
@{
Model.MarketandRevenueOptions = new List<SelectListItem>();
Model.MarketandRevenueOptions.Add(new SelectListItem
{
Text = "--Select Option--",
Value = "",
});
Model.MarketandRevenueOptions.Add(new SelectListItem
{
Text = "Greater Than",
Value = "Test 4",
});
Model.MarketandRevenueOptions.Add(new SelectListItem
{
Text = "Less Than",
Value = "Test 5"
});
Model.MarketandRevenueOptions.Add(new SelectListItem
{
Text = "Equals",
Value = "Test 6"
});
Model.MarketandRevenueOptions.Add(new SelectListItem
{
Text = "Range",
Value = "Test 7"
});
}
@{
Model.KeywordsList = new List<SelectListItem>();
Model.KeywordsList.Add(new SelectListItem
{
Text = "--Select Option--",
Value = "Test 8",
});
Model.KeywordsList.Add(new SelectListItem
{
Text = "Excluding",
Value = "Test 9",
});
Model.KeywordsList.Add(new SelectListItem
{
Text = "Including",
Value = "Test 10"
});
Model.KeywordsList.Add(new SelectListItem
{
Text = "Exact Phrase",
Value = "Test 11"
});
}
<td>@Html.DropDownListFor(model => model.KeywordOptionsSelected, Model.KeywordOptions, new { @id = "Dropdown_TEST" })</td>
<td class="display" style="display:none; text-align:left; width:18px;">@Html.DropDownListFor(model => model.MarketandRevenueOptionsSelected, Model.MarketandRevenueOptions, new { @id = "platt" })</td>
<td class="display_1" style="display:none; text-align:left; width:18px;">@Html.DropDownListFor(model => model.KeywordsListSelected, Model.KeywordsList, new { @id = "platt2" })</td>
<td class="display_2" style="display:none; text-align:center;">
<div>
<input type="number" name="keywordtextbox" value="0">
</div>
</td>
<td class="display_3" style="display:none; text-align:left;">
<div style="text-align:center;">
<input type="text" name="keywordtextbox" placeholder="e.g Toy Manufacturing">
</div>
</td>
<td><a class="btn btn-xs delete-record" data-id="1"><i class="glyphicon glyphicon-trash"></i></a></td>
</tr>
</tbody>
</table>
<div style="display:none;">
<table id="sample_table">
<tr id="">
<td>
<select required id="Dropdown_clone">
<option value="selectoption_clone">--Select Option--</option>
<option class="cont" value="clone 1"> Market Cap</option>
<option class="cont_1" value="clone 2"> Revenue</option>
<option class="cont_2" value="clone 3"> Keywords</option>
</select>
</td>
<td class="display_clone" style="display:none;">
<select required id="platt_clone">
<option value="">--Select Option--</option>
<option value="clone 4"> Greater Than </option>
<option value="clone 5"> Less Than </option>
<option value="clone 6"> Equals </option>
<option value="clone 7"> Range </option>
</select>
</td>
<td class="display_1_clone" style="display:none; text-align:left; width:10px">
<select required id="platt2_clone">
<option value="clone 8">--Select Option--</option>
<option value="clone 9">Excluding</option>
<option value="clone 10">Including</option>
<option value="clone 11">Exact Phrase</option>
</select>
</td>
<td class="display_2_clone" style="display:none;">
<div style="text-align:right;">
<input type="number" name="keywordtextbox" value="0">
</div>
</td>
<td class="display_3_clone" style="display:none;">
<div style="text-align:center;">
<input type="text" name="keywordtextbox" placeholder="e.g Toy Manufacturing">
</div>
</td>
<td><a class="btn btn-xs delete-record" data-id="0"><i class="glyphicon glyphicon-trash"></i></a></td>
</tr>
</table>
</div>
<div>
<a class="btn btn-primary pull-right add-record" data-added="0"><i class="glyphicon glyphicon-plus"></i> Add Row</a>
</div>
<br />
<br />
<form>
<input type="submit" class="waccbuttonsubmit" value='Apply' />
</form>
</div>