powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
23 сообщений из 23, страница 1 из 1
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40065942
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Есть проект asp net core 3.1, Entity framework core 3. Проект с представлениями mvc.

Есть 3 сущности - Friend, City, Street:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
[Table("friend")]
    public partial class Friend
    {
        [Key]
        [Column("Id_Friend")]
        public long IdFriend { get; set; }
        [Column("Name_", TypeName = "varchar(256)")]
        public string Name { get; set; }
        [Column("City_id")]
        public int? CityId { get; set; }
        [Column("Street_id")]
        public int? StreetId { get; set; }
        [Column("User_id")]
        public long? UserId { get; set; }

        [ForeignKey(nameof(CityId))]
        [InverseProperty("Friends")]
        public virtual City City { get; set; }
        [ForeignKey(nameof(StreetId))]
        [InverseProperty("Friends")]
        public virtual Street Street { get; set; }
        [ForeignKey(nameof(UserId))]
        [InverseProperty("Friends")]
        public virtual User User { get; set; }
    }


[Table("city")]
    public partial class City
    {
        public City()
        {
            Friends = new HashSet<Friend>();
            Streets = new HashSet<Street>();
        }

        [Key]
        [Column("Id_City")]
        public int IdCity { get; set; }
        [Column(TypeName = "varchar(256)")]
        public string Name { get; set; }

        [InverseProperty("City")]
        public virtual ICollection<Friend> Friends { get; set; }
        [InverseProperty("City")]
        public virtual ICollection<Street> Streets { get; set; }
    }


[Table("street")]
    public partial class Street
    {
        public Street()
        {
            Friends = new HashSet<Friend>();
        }

        [Key]
        [Column("Id_Street")]
        public int IdStreet { get; set; }
        [Column(TypeName = "varchar(256)")]
        public string Name { get; set; }
        [Column("City_id")]
        public int? CityId { get; set; }

        [ForeignKey(nameof(CityId))]
        [InverseProperty("Streets")]
        public virtual City City { get; set; }
        [InverseProperty("Street")]
        public virtual ICollection<Friend> Friends { get; set; }
    }


По плану пользователь добавляет друга (Friend) и вводит данные о нем - имя, город, улицу, номер дома.

При этом при выборе города список улиц должен обновляться в соответствии с выбранным городом - должны отобразиться улицы из коллекции ICollection Streets объекта сущности City.

Для этого был добавлен дополнительный метод "GetStreets" в контроллер:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
public class FriendsController : Controller
    {
        private readonly VoterCollectorContext _context;

        public FriendsController(VoterCollectorContext context)
        {
            _context = context;
        }
        
        // GET: Friends/Create
        [HttpGet]
        public IActionResult Create()
        {
            int selectedIndexCity = 1;
            ViewData["CityId"] = new SelectList(_context.City, "IdCity", "Name", selectedIndexCity);
            ViewData["DistrictId"] = new SelectList(_context.District, "IdDistrict", "Name");
            ViewData["FieldActivityId"] = new SelectList(_context.Fieldactivity, "IdFieldActivity", "Name");
            ViewData["GroupUId"] = new SelectList(_context.Groupu, "IdGroup", "Name");
            ViewData["HouseId"] = new SelectList(_context.House, "IdHouse", "Name");
            ViewData["MicroDistrictId"] = new SelectList(_context.Microdistrict, "IdMicroDistrict", "Name");
            ViewData["PollingStationId"] = new SelectList(_context.PollingStation, "IdPollingStation", "Name");
            //ViewData["StreetId"] = new SelectList(_context.Street.Where(s => s.CityId==1), "IdStreet", "Name");
            SelectList streets = new SelectList(_context.Street.Where(s => s.CityId == 1), "IdStreet", "Name");
            ViewBag.Streets = streets;
            ViewData["UserId"] = new SelectList(_context.User, "IdUser", "FamilyName");
            return View();
        }

        [HttpGet]
        public IActionResult GetStreets(int? id)
        {
            SelectList streets = new SelectList(_context.Street.Where(s => s.CityId == id).ToList());
            return PartialView(streets);
        }

        // POST: Friends/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create([Bind("IdFriend,FamilyName,Name,PatronymicName,DateBirth,CityId,DistrictId,StreetId,MicroDistrictId,HouseId,Building,Apartment,Telephone,PollingStationId,Organization,FieldActivityId,PhoneNumberResponsible,DateRegistrationSite,VotingDate,Voter,Adress,Qrcode,Description,UserId,GroupUId")] Friend friend)
        {
            List<Friend> searchFriend = _context.Friend.Where(frnd => frnd.Name.Equals(friend.Name) && frnd.FamilyName.Equals(friend.FamilyName) && frnd.PatronymicName.Equals(friend.PatronymicName) && frnd.DateBirth.Value.Date == friend.DateBirth.Value.Date).ToList();

            if (searchFriend.Count == 0)
            {

                if (ModelState.IsValid)
                {
                    User userSave = _context.User.Where(u => u.UserName.Equals(User.Identity.Name)).FirstOrDefault();
                    friend.UserId = userSave.IdUser;
                    //friend.GroupUId = userSave.Groupsusers.First().GroupUId;

                    _context.Add(friend);
                    await _context.SaveChangesAsync();
                    return RedirectToAction(nameof(Index));
                }
                ViewData["CityId"] = new SelectList(_context.City, "IdCity", "IdCity", friend.CityId);
                ViewData["DistrictId"] = new SelectList(_context.District, "IdDistrict", "IdDistrict", friend.DistrictId);
                ViewData["FieldActivityId"] = new SelectList(_context.Fieldactivity, "IdFieldActivity", "IdFieldActivity", friend.FieldActivityId);
                ViewData["GroupUId"] = new SelectList(_context.Groupu, "IdGroup", "IdGroup", friend.GroupUId);
                ViewData["HouseId"] = new SelectList(_context.House, "IdHouse", "IdHouse", friend.HouseId);
                ViewData["MicroDistrictId"] = new SelectList(_context.Microdistrict, "IdMicroDistrict", "IdMicroDistrict", friend.MicroDistrictId);
                ViewData["PollingStationId"] = new SelectList(_context.PollingStation, "IdPollingStation", "IdPollingStation", friend.PollingStationId);
                ViewData["StreetId"] = new SelectList(_context.Street, "IdStreet", "IdStreet", friend.StreetId);
                ViewData["UserId"] = new SelectList(_context.User, "IdUser", "Password", friend.UserId);
                return View(friend);
            }
            else return Content("Данный пользователь уже был внесен в списки ранее!");
        }
}



Было создано частичное представления для улиц (Streets.cshtml):
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
@model IEnumerable<voteCollector.Models.Street>

<select id="street" name="Street">
    @foreach (var item in Model)
    {
        <option value="@item.IdStreet">@item.Name</option>
    }
</select>


Данное представление "ViewBag.Streets" было присвоено на основном представлении объекту:
Код: html
1.
2.
3.
4.
<div class="form-group">
            <label asp-for="StreetId" class="control-label"></label>
            <select id="StreetId" asp-for="StreetId" class="form-control" asp-items="ViewBag.Streets"></select>
        </div>


Для передаче id выбранного города на сервер для обновления списка написал js-функцию c запросом ajax:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@section Scripts {

    <script>
$(function () {
            $("#CityId").change(function () {
                var id = $('#CityId').val();
                $.ajax({
                    type: 'GET',
                    url: '@Url.Action("GetStreets")/' + id,                  
                    success: function (data) {
                        $('#StreetId').replaceWith(data);
                    },
                    error: function (result, status, er) {
                        alert("error: " + result + " status: " + status + " er:" + er);
                    }
                });
            });
        });
    </script>
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}


JS-функция срабатывает, контроллер отрабатывает и формирует новый список, но на страницу он не возвращается. Выдает ошибку сервера:
авторjquery.min.js:2 GET http://localhost:18246/Friends/GetStreets/3 500 (Internal Server Error) send @ jquery.min.js:2 ajax @ jquery.min.js:2 (anonymous) @ Create:257 dispatch @ jquery.min.js:2 v.handle @ jquery.min.js:2 ListPicker._handleMouseUp @ unknown

Делал по примеру описанному здесь https://metanit.com/sharp/articles/mvc/17.php
Кто знает подскажите, где неверно сделал?
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40065947
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Здравствуйте!

Ты выложи тут исходники всего проекта. А то по всего ~160 строкам мало кто что-нибудь сможет сказать.
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066122
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
контроллер отрабатывает
автор
500 (Internal Server Error)
Что-то одно, определись. Либо контроллер отрабатывает, либо ошибка 500.
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066145
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
JS-функция срабатывает, контроллер отрабатывает и формирует новый список, но на страницу он не возвращается. Выдает ошибку сервера:
авторjquery.min.js:2 GET http://localhost:18246/Friends/GetStreets/3 500 (Internal Server Error) send @ jquery.min.js:2 ajax @ jquery.min.js:2 (anonymous) @ Create:257 dispatch @ jquery.min.js:2 v.handle @ jquery.min.js:2 ListPicker._handleMouseUp @ unknown


Включите консоль браузера и посмотрите что в ответе приходит.
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066192
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Vlad__i__mir
контроллер отрабатывает
автор
500 (Internal Server Error)
Что-то одно, определись. Либо контроллер отрабатывает, либо ошибка 500.
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066199
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
Vlad__i__mir
JS-функция срабатывает, контроллер отрабатывает и формирует новый список, но на страницу он не возвращается. Выдает ошибку сервера:
пропущено...


Включите консоль браузера и посмотрите что в ответе приходит.


На фронт ничего не приходит:
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066220
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Shocker.Pro
пропущено...
пропущено...
Что-то одно, определись. Либо контроллер отрабатывает, либо ошибка 500.


То, что у тебя точка останова стоит на return еще не значит, что сам return выполнился, значит ошибка происходит на рендеринге partial
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066222
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Для этого был добавлен дополнительный метод "GetStreets" в контроллер:
а представление GetStreets существует?
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066244
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, да

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
@model IEnumerable<voteCollector.Models.Street>

<select id="street" name="Street">
    @foreach (var item in Model)
    {
        <option value="@item.IdStreet">@item.Name</option>
    }
</select>



Правда оно у меня называлось "Streets.cshtml" сейчас переименовал в "GetStreets.cshtml" - как контроллер.
В Response сервера начал выдавать:
авторSystem.InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'Microsoft.AspNetCore.Mvc.Rendering.SelectList', but this ViewDataDictionary instance requires a model item of type 'System.Collections.Generic.IEnumerable`1[voteCollector.Models.Street]'.
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.EnsureCompatible(Object value)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary..ctor(ViewDataDictionary source, Object model, Type declaredModelType)
at lambda_method(Closure , ViewDataDictionary )
at Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator.CreateViewDataDictionary(ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator.Activate(Object page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator.Activate(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext actionContext, IView view, ViewDataDictionary viewData, ITempDataDictionary tempData, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor.ExecuteAsync(ActionContext context, PartialViewResult result)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|29_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

HEADERS
=======
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Cookie: .AspNetCore.Antiforgery.sTgLludoNYM=CfDJ8P-wVDTJDwxAkxsbTFc3yTbk4EvcFyY9xyO58ZrQgAjASWgJziHO5iGAQv_hR1FgTjcFBsVV-tG63Dp5RnHmivA05pMEq6TKCDHZBc69rguxy14cqIvkAdz4wSY5fH96jryrraeyv2FlTiF_GnlLKi8; .AspNetCore.Cookies=CfDJ8P-wVDTJDwxAkxsbTFc3yTZgDIksPgHNN0onCEuq9GxpnvICqScaJlZB5lruauVKx6nEKQZgOdwtpbOtQzyw8HfAOnOgkq9hAitg4-CpLSEDblRTZffHgDBWh3yssD3iAAnYhvuJx7uaoQf0JOgM4AzsKOw2iTx0GH6fMcuIS0humFffBoHSKuUHnjgYQlvOzz_TbFLOi54mZ0skEM57ex3n7NhRiaLNTavppagEFSlQlfqcd9KpGiCYAaiwRKo_3swsyMaef1DBoX9Br3dcWip6P8FbxQpGyVmP8F-BQsSQsJQ3K_RlswTSWVd7tNzfqqDrkuoYt1HJFehzCugIU-o8w_ItLkiXZePU0khnFfv9v3_Crh9sWd1ejkpOT5VIj2hfF0_ETEqF9NrbZWPnCMGKmM-nxWgzeBhN_q0pDO1O
Host: localhost:18246
Referer: http://localhost:18246/Friends/Create
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066255
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, получается ему не хватает имплементации интерфейса IEnumerable у списка, который я передаю на страницу?
А разве SelectList, который я передаю не имплементирует IEnumerable?
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066261
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Правда оно у меня называлось "Streets.cshtml" сейчас переименовал в "GetStreets.cshtml" - как контроллер.
я же говорил, что контроллер не отрабатывает. Ну и как он должен был догадаться, какое представление возвращать, если ты его назвал по-другому?
Vlad__i__mir
Shocker.Pro, получается ему не хватает имплементации интерфейса IEnumerable у списка, который я передаю на страницу?
Нет, ему не хватает имплементации IEnumerable<T>
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066263
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно конечно сделать Cast<voteCollector.Models.Street>...
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066266
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Можно конечно сделать Cast<voteCollector.Models.Street>...


У меня на странице Index.cshtml объявлено аналогичным образом:
Код: c#
1.
@model IEnumerable<voteCollector.Models.Friend>



и forech норм работает.
Почему же здесь не пашет?
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066298
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Можно конечно сделать Cast<voteCollector.Models.Street>...


У меня при таком варианте выдает ошибку, что
авторНе удалось найти тип или имя пространства имен "Cast<>" (возможно, отсутствует директива using или ссылка на сборку).


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
@model Cast<voteCollector.Models.Street>

<select id="StreetId" name="Street">
    @foreach (var item in Model)
    {
        <option value="@item.IdStreet">@item.Name</option>
    }
</select>
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066333
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Код: c#
1.
@model Cast<voteCollector.Models.Street>


Это что вообще такое?
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066362
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir
Код: c#
1.
@model Cast<voteCollector.Models.Street>


Это что вообще такое?


авторМожно конечно сделать Cast<voteCollector.Models.Street>...

Возможно я не верно понял автора
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066374
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Возможно я не верно понял автора

Автор имел в виду вот это
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066398
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir
Возможно я не верно понял автора

Автор имел в виду вот это


Shocker.ProМожно конечно сделать Cast<voteCollector.Models.Street>...

Теперь, когда:
Код: c#
1.
2.
3.
4.
5.
6.
[HttpGet]
        public IActionResult GetStreets(int? id)
        {
            SelectList streets = new SelectList(_context.Street.Where(s => s.CityId == id).ToList());
            return PartialView(streets.Cast<Street>());
        }



Он выдает ошибку, что не может сделать следующее преобразование:
авторSystem.InvalidCastException: Unable to cast object of type 'Microsoft.AspNetCore.Mvc.Rendering.SelectListItem' to type 'voteCollector.Models.Street'.
at System.Linq.Enumerable.CastIterator[TResult](IEnumerable source)+MoveNext()
at AspNetCore.Views_Friends_GetStreets.ExecuteAsync() in D:\My_PROGRAMS\voteCollector\Views\Friends\GetStreets.cshtml:line 4
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext actionContext, IView view, ViewDataDictionary viewData, ITempDataDictionary tempData, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor.ExecuteAsync(ActionContext context, PartialViewResult result)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|29_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

HEADERS
=======
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Cookie: .AspNetCore.Antiforgery.sTgLludoNYM=CfDJ8P-wVDTJDwxAkxsbTFc3yTap4sRF3x7NPb32w3wUMLHRezmt0GTbw5-oS15mt3FVtfZ8aukpzKLyjGzqBndxB3Qwvdqrw6VJIftil0-K91mgXtm605UY7V3wm9JxPlnUHHkLHxAWLoRL3IxQfcHV2Nw; .AspNetCore.Cookies=CfDJ8P-wVDTJDwxAkxsbTFc3yTYI1_URkRVFZ3yo-TFATH70Rplei-TInaLCgH0ObG6o6YFvXI7Cu8u7qzke_hl7c0-YRo_QM4fy2K6p7m1K7eyOmvPSeoH6SDud8vR08Obuxk2xjVNtkZ1zbLHKoCIqyBJtVlQpIGTxhqoaQxJ1_dYLXCj7m6Me7c1P5E7Qz81mN-lX0uSHEMgI5g6ATq7sH5gWlTvZnbVQKaJOt6-PBiYzfGjOYxw7sd1wKVflHP8mpv-7SiI9ALJitxVFKkn9TBqGXmT-zjX9_ug4SNTnuC-CbBsNGnQLcOeN_i7DStRlHS3TIc-NdhapzYedZjevZ9jqT8TMEzOp4DB9ToqUrgCBME6c_RjDlPT4EJHDFA5N8Ff0CS8rcTAybNLeh2BBDZ1xhtUMyIHBx2jyaApHfXIT
Host: localhost:18246
Referer: http://localhost:18246/Friends/Create
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066425
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Он выдает ошибку, что не может сделать следующее преобразование:

Ну конечно не может - как ты SelectListItem приведешь к Street. Тебе надо просто без всякого каста:
Код: c#
1.
2.
3.
4.
5.
[HttpGet]
public IActionResult GetStreets(int? id)
{
     return PartialView(_context.Street.Where(s => s.CityId == id));
}


А в паршиале:
Код: c#
1.
@model IEnumerable<Street>;
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066509
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Возможно я не верно понял автора
возможно, нужно взять учебник, почитать какие-то основы - про Linq, про IEnumerable, иначе так на методе тыка далеко не уедешь
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066515
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
нужно взять учебник

Вот наш лучший учебник
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066548
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir
Он выдает ошибку, что не может сделать следующее преобразование:

Ну конечно не может - как ты SelectListItem приведешь к Street. Тебе надо просто без всякого каста:
Код: c#
1.
2.
3.
4.
5.
[HttpGet]
public IActionResult GetStreets(int? id)
{
     return PartialView(_context.Street.Where(s => s.CityId == id));
}


А в паршиале:
Код: c#
1.
@model IEnumerable<Street>;



Shocker.Pro

Спасибо за помощь! Это работает
...
Рейтинг: 0 / 0
Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
    #40066641
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Спасибо за помощь! Это работает

Всегда пожалуйста, но учебник ты, все-таки, раздобудь ;-))
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не обновляется список объектов шаблона представления после GET-запроса к контроллеру в asp
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]