У меня есть форма, которая содержит текстовые поля Area и ListBox. Все остальные поля в форме отправляются на контроллер, но не ListBox?ListBox не отправляет на контроллер MVC
Вот Бритва код:
<form method="post" action="/Admin/AddPost">
@Html.ValidationSummary(true)
<div class="form-group">
<label>Title</label>
<input type="text" class="form-control" name="BlogTitle" placeholder="Title" value="@Model.BlogTitle" required>
</div>
<div class="form-group">
<label>Image</label>
<input type="text" class="form-control" name="BlogImage" value="@Model.BlogImage" placeholder="Image">
</div>
<div class="form-group">
<label>Description</label>
<textarea name="BlogDescription">@Model.BlogDescription</textarea>
</div>
<div class="form-group">
<label>Tags</label>
@Html.ListBox("Tags", Model.Tags, new { @class = "form-control", @name = "Tags", @multiple = "multiple" })
</div>
<button type="submit" class="btn btn-primary">Save</button>
</form>
Вот GET и POST от контроллера:
public ActionResult AddPost()
{
var model = new BlogModel
{
BlogTitle = string.Empty,
BlogDescription = string.Empty,
BlogImage = string.Empty,
Tags = new TagQueries().GetAllTags().Select(x => new SelectListItem
{
Text = x.TagName,
Value = x.TagId.ToString(),
Selected = false
})
};
return View(model);
}
[HttpPost]
public ActionResult AddPost(BlogModel model)
{
TransferBlogDetailsToDbModel addToDb = new TransferBlogDetailsToDbModel();
if (ModelState.IsValid && model != null)
{
try
{
addToDb.TransferBlogDetails(model);
return RedirectToAction("Index", "Admin");
}
catch (Exception)
{
ModelState.AddModelError("", "Invalid data,Please try again");
}
}
return View(model);
}
Вот Модель:
public class BlogModel
{
[HiddenInput]
public int BlogId { get; set; }
[Required(ErrorMessage = "Blog Title is required")]
public string BlogTitle { get; set; }
[Required(ErrorMessage = "Blog description is required")]
public string BlogDescription { get; set; }
public string BlogImage { get; set; }
public IEnumerable<SelectListItem> Tags { get; set; }
}
Любые предложения приветствуются.