Я новичок в asp mvc, поэтому я пытался понять, как получить выбранное значение из выпадающего списка.Теперь я хочу видеть выбранное значение в виде текста в моем представлении.После поиска нескольких примеров у меня есть этот код в контроллере:
public ActionResult Index()
{
TaskModel task = new TaskModel();
task.Tasks = FillTaskList();
return View(task);
}
[HttpPost]
public ActionResult Index(TaskModel task)
{
task.Tasks = FillTaskList();
ViewBag.Message = task.TaskName;
return View(task);
}
private static List<SelectListItem> FillTaskList()
{
List<SelectListItem> items = new List<SelectListItem>();
string constr = ConfigurationManager.ConnectionStrings["contingentConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
string query = " SELECT TaskId, TaskName FROM Task";
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
con.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
items.Add(new SelectListItem
{
Text = sdr["TaskName"].ToString(),
Value = sdr["TaskId"].ToString()
});
}
}
con.Close();
}
}
return items;
}
Это мой взгляд:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@model WebApplication1.Models.TaskModel
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
</head>
<body>
<div>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<div class="form-group">
@Html.DropDownListFor(m => m.TaskId, Model.Tasks, "--Select task--", null)
</div>
<button type="Submit" class="btn btn-success submit">Send</button><br/>
<span style="color:green">@Html.Raw(ViewBag.Message)</span>
}
</div>
</body>
</html>
И это моя модель:
namespace WebApplication1.Models
{
public class TaskModel
{
public List<SelectListItem> Tasks { get; set; }
public int TaskId { get; set; }
public string TaskName { get; set; }
}
}
Проблема в том, что я продолжаю получать значение NULL вместо значения «TaskName»,
ViewBag.Message = task.TaskName;
, но
ViewBag.Message = task.TaskId;
обрабатывается правильно, и я вижу его в ViewBag.Message.Что я делаю не так?