У меня есть хранимая процедура, связанная с моделью, и я пытаюсь получить значение параметра на основе раскрывающегося списка при отправке. Я могу получить конечное значение, если введу строку в параметр. Однако я хочу, чтобы окончательное значение было основано на раскрывающемся списке при выборе с помощью кнопки отправки. Как передать выбранное значение из раскрывающегося списка в параметр. Мой параметр - GetWA CC () @oplocation, @Industry, @Date). Я пытаюсь передать список в параметр и преобразовать ToString (), но это не работает. Пожалуйста, помогите.
Большое спасибо.
Вот мой HomeController:
public ActionResult WACC()
{
ViewBag.Message = "Your WACC page.";
//Set Industry : Later make it DB-Driven
//List<SelectListItem> lstIndustry = new List<SelectListItem>() {
// new SelectListItem {Text = "Financials", Value = "1"},
// new SelectListItem {Text = "Real Estate", Value = "2"},
//};
// Pre-set values
var objWACC = new WACC();
objWACC.ValuationDate = new DateTime(2018, 11, 20);
//objWACC.IndustryList = lstIndustry;
objWACC.IndustryList = WACC_Lib.GetIndustry();
//objWACC.IndustrySelected = 1;
objWACC.LocationList = WACC_Lib.GetOpLocations();
//objWACC.LocationSelected = 1;
DateTime waccdate = objWACC.ValuationDate;
string indlist = objWACC.IndustryList.ToString();
string loclist = objWACC.LocationList.ToString();
objWACC.FairValue = WACC_Lib.GetWACC(loclist, indlist, waccdate);
// Redirect to WACC page
return View(objWACC);
}
Вот мой WA CC Contoller:
public class WACCController : ApiController
{
[HttpGet]
[Route("GetWACC")] // for testing, F5 and change the link to http://localhost:54192/API/WACC/GetWACC?strOpLocation=Hong%20%Kong&strIndustry=Financials&strIniDate=2017-12-31&strValDate=2018-12-31 , the port no may be different (no "HOME")
public double GetWACC(string strOpLocation, string strIndustry, DateTime ValDate)
{
double dblResult = 0.0;
try
{
dblResult = BDODataLib.WACC_Lib.GetWACC(strOpLocation, strIndustry, ValDate);
}
catch
{
dblResult = -2.0;
}
return dblResult;
}
}
}
Вот моя модель:
public class WACC
{
[Key]
[Display(Name = "Industry")]
//public string Industry { get; set; }
public List<SelectListItem> IndustryList { get; set; }
public string IndustrySelected { get; set; }
// public int LocID { get; set; }
[Display(Name = "Location")]
public List<SelectListItem> LocationList { get; set; }
public string LocationSelected { get; set; }
[Display(Name = "Valualtion Date")]
public DateTime ValuationDate { get; set; }
[Display(Name = "WACC")]
public double FairValue { get; set; }
}
Вот мой вид:
<table class='wacctable'>
<tr>
<td style="background-color:lightgrey">@Html.DisplayNameFor(x => x.IndustryList)</td>
@*<td>@Html.DropDownList("lstIndustry", (IEnumerable<SelectListItem>)ViewData["lstIndustry"],1)</td>*@
@*<td style="width: 200px">@Html.DropDownListFor(x => x.IndustrySelected, Model.IndustryList, "--Select One--", new {onchange = "document.getElementById('TheForm').submit();" })</td>*@
<td style="width: 200px">@Html.DropDownListFor(x => x.LocID, new SelectList (Model.IndustryList, "Value", "Text"), "--Select One--")</td>
@*<td>@Html.DropDownListFor(model => model.Industry, (IEnumerable<SelectListItem>)ViewData["lstIndustry"])</td>*@
@*<td>@Html.TextBoxFor(model => model.Industry)</td>*@
</tr>
<tr>
<td style="background-color:lightgrey">@Html.DisplayNameFor(x => x.LocationList)</td>
@*<td>@Html.TextBoxFor(x => x.LocationList)</td>*
@*<td>@Html.DropDownListFor(x => x.LocationSelected, Model.LocationList, "--Select One--", new { @class = "abc", onchange = "document.getElementById('TheForm').submit();" })</td>*@
<td>@Html.DropDownListFor(x => x.LocID, new SelectList (Model.LocationList, "Value", "Text"), "--Select One--", new { @class = "abc" })</td>
@*<td>@Html.DropDownListFor(x => Model.LocationSelected, new SelectList(Model.LocationList, "Value"), htmlAttributes: new { @class = "form-control", id = "Location",style = "length: 180px;" })</td>*@
</tr>
<tr>
<td style="background-color:lightgrey">@Html.DisplayNameFor(x => x.ValuationDate)</td>
<td>@Html.TextBoxFor(x => x.ValuationDate, string.Format("{0:d}", Model.ValuationDate.ToString("yyyy-MM-dd")), new { @class = "date-picker", type = "date" })</td>
</tr>
<tr>
<td style="background-color:lightgrey">@Html.DisplayNameFor(m => m.FairValue)</td>
<td>@Html.TextBoxFor(m => m.FairValue, new { @class = "width: 180px;" })</td>
</tr>
</table>
<br />
<input type="submit" value='Submit' />
}
</div>
вот как это выглядит, когда я передаю параметр
Параметр возвращает этот "System.Collection.Generi c .List"
Вот как выглядит представление:
Вот как выпадающий список выглядит как