Я столкнулся с каким-то странным поведением после миграции MVC 6 RC1 в RC2.Сообщение формы никогда не выполняет действие и имеет ошибку памяти в MVC 6 RC2
Допустим, мы имеем упрощенную вниз версию формы, которая будет POST к действию на представить:
@model InstitutionViewModel
<form asp-controller="Institution" asp-action="Create" method="post">
@Html.Hidden("companyId", ViewBag.CompanyId)
@Html.DropDownListFor(Model => Model.LocationId, (List<SelectListItem>)ViewBag.Locations, new { Class = "form-control" })
@Html.TextAreaFor(model => model.Description, new { Class = "form-control" })
<input type="submit" value="Submit" class="btn btn-success" />
</form>
И тогда у нас есть этот InstitutionViewModel
public class InstitutionViewModel
{
public int Id { get; set; }
public string Description { get; set; }
public int LocationId { get; set; }
public LocationViewModel Location { get; set; }
}
и действие мы публикуем к, выглядит следующим образом
[HttpPost]
public IActionResult Create(int companyId, InstitutionViewModel institution)
{
...
}
Проблема, с которой я сталкиваюсь, заключается в том, что submit никогда не срабатывает rs действие. В браузере отображается счетчик, и что-то происходит в фоновом режиме, но программа никогда не приходит к действию. Хуже того - когда это происходит, Потребление ОЗУ в режиме dotnet начинает постепенно возрастать, пока оно не закончится. В последний раз, когда я позволял веб-сайту работать в этом состоянии, процесс dotnet использовал 7 ГБ оперативной памяти, и для достижения этой цели потребовалось всего 2 или 3 минуты!
Это работало без проблем в RC1. Единственным решением, которое я нашел для этого до сих пор, является удаление свойства LocationViewModel из InstitutionViewModel. Если я это сделаю, POST достигнет действия без каких-либо проблем.
LocationViewModel, похоже, не является проблемой сам по себе, потому что то же самое происходит, если в классе есть какой-либо другой видModel в качестве свойства, независимо от того, что содержит viewModel.
Теперь я запутался в погоде, это ошибка в RC2, или я делаю что-то ужасно неправильно. Может быть, я забыл включить что-то или что-то сломал в Startup.cs и project.json при обновлении до RC2. У кого-нибудь есть идеи?
Как вы знаете, он никогда не достигает действия? Похоже, клиент выдает много запросов, которые застревают на сервере одновременно. – usr
Приостановите отладчик, пока это происходит. Что происходит? – usr
Ну, я использую отладчик, и он никогда не попадает в первую строку действия. И даже если я запускаю его в выпуске без каких-либо отладочных точек, он делает то же самое. Если я проверю в Chrome, сетевой тег также показывает, что был отправлен только один запрос. –