我正在尝试通过 mvc 中的 Action 方法返回视图和列表,但出现错误。这里我通过 view() 传递“Detail.PlantName”中的数据列表以及视图名称“MasterPage”;
[HttpPost]
public ActionResult Index(FormData person)
{
TempData["EmpId"] = person.EmpId.ToString();
FormData Detail = new FormData();
Detail.PlantName = PopulatePlant(TempData["EmpId"].ToString());
return View("MasterPage",, Detail.PlantName.ToList());
}
private static List<SelectListItem> PopulatePlant(string empID)
{
List<SelectListItem> PName = new List<SelectListItem>();
String connectionString = ConfigurationManager.ConnectionStrings["conndbprodnew"].ConnectionString;
OracleConnection connection = new OracleConnection(connectionString);
OracleCommand command = new OracleCommand("SELECT DISTINCT PARAM.PAR_CD ,PARAM.PAR_DESC1 FROM PARAM WHERE PARAM.PAR_TYP = 'LOC' AND PAR_REG_IND = 'X' and Param.Par_Cd in (select plant_code from user_level_access where token_no = :token_no) ", connection);
connection.Open();
command.CommandType = CommandType.Text;
command.Parameters.AddWithValue(":token_no", empID);
using (OracleDataReader sdr = command.ExecuteReader())
{
while (sdr.Read())
{
PName.Add(new SelectListItem
{
Text = sdr["PAR_DESC1"].ToString(),
Value = sdr["PAR_CD"].ToString()
});
}
connection.Close();
}
return PName;
}
模型
namespace Rm_Module.Models
{
public class FormData
{
public int EmpId { get; set; }
public string Password { get; set; }
public List<SelectListItem> PlantName { get; set; }
public int? PlantId { get; set; }
}
}
在 MasterPage.cshtml
@model IList<Rm_Module.Models.FormData>
<body class="index-page">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{<div class="collapse navbar-collapse" id="navigation-index">
<ul class="nav navbar-nav navbar-right">
<li>
<i class="material-icons">home</i> Home
</li>
<li>
@Html.DropDownListFor(m => m.PlantId,Model.PlantName, "Please Select");
</li>
</ul>
</div>
}
但无法在视图中绑定数据。任何想法将不胜感激如何实现它。出现错误“Listdoesnot conatan 'PlantName' 的定义并且没有方法 'PlantName' 接受 List 类型的第一个参数”