#asp.net-mvc #asp.net-core
#asp.net-mvc #asp.net-core
Вопрос:
Я пытаюсь создать простое CRUD-приложение asp.net ядро использует MVC, и со мной происходит самая странная вещь.
создайте модель и передайте ее в форму, но когда я захожу, чтобы сохранить ее, у нее больше нет идентификатора, который я передал в нее.
[HttpGet]
public IActionResult CreateCompany(Guid id)
{
//id = 677b57f1-d0b2-484b-9892-b06e6eb9f1f7
var pageId = id;
var company = new CompanyListItem() {PublicPageId = pageId};
return View(company);
}
[HttpPost]
public IActionResult CreateCompany(CompanyListItem model)
{
//model.PublicPageId = 00000000-0000-0000-0000-000000000000
if (ModelState.IsValid)
{
model.Id = Guid.NewGuid();
var newModel = _companyDataProvider.Add(model);
PublicPageViewModel page = null;
if (newModel != null)
{
page = _pageDataProvider.GetPageIdFromCompanyListId(newModel.Id);
}
if (page != null)
{
return RedirectToAction("Details", page);
}
}
return View();
}
моя форма:
@model CompanyListItem
<h1>Add Company</h1>
<form method="post">
<div class="col-md-6">
<div class="form-group">
<label asp-for="Header"></label>
<input asp-for="Header" class="form-control"/>
</div>
<div>
<input type="submit" class="btn btn-success" value="save"/>
<a class="btn btn-default">Cancel</a>
</div>
</div>
</form>
Кто-нибудь знает, почему это происходит? Или как я могу предотвратить это?
Комментарии:
1. Вы не создаете никакого элемента управления формой для свойства
PublicPageId
, поэтому его значение не может быть отправлено обратно. Включите скрытый ввод для него в форму.2. не могли бы вы, пожалуйста, прислать пример? Я попробовал @Html. HiddenFor(m=>m.PublicPageId) и он все еще это делает
3. спасибо, что сделали это, я переключился с @html на ввод, спасибо agan