Здравствуйте, вам нужна помощь по нижеуказанному, пожалуйста.
Шаг 1: У меня есть контроллер с именем " Managing ", который имеет два метода. Методы " AllStudent " и " StudentDetails ".
Метод действия AllStudent извлекает данные из API конечной точки и отображает их в AllStudent Просмотр. Внутри метода действия « AllStudent » у меня есть строка Json, которая сопоставляется с AllStudentModel ( См. Ниже )
Я НЕсоздать конструктор для него ??? Разве это не проблема ??
public class AllStudentModel
{
public int Id { get; set; }
public string Title { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Course { get; set; }
public string Picture { get; set; }
}
//Action method AllStudent
public async Task<ActionResult> AllStudent()
{
//Fetching data thru webapi... in a foreach loop
...
List<AllStudentModel> stdList = new List<AllStudentModel>();
stdList.Add(PropertyDetails);
return View(stdList);
}
Внутри AllStudent Просмотр, в верхней части страницы, у меня есть это утверждение ( @ model IEnumerable ) иЯ могу получить данные, используя цикл foreach. ( см. Ниже )
foreach (var item in Model.OrderBy(x => x.Id))
{
<p>@Html.DisplayFor(modelItem => item.Name)</p>
<img style="width: 100%" src="@Html.DisplayFor(modelItem => item.Picture)" alt="Image">
...
}
Пока все отлично работает, я имею в виду, что я могу отображать полученные данные в AllStudentView.
Что я должен отобразитьв AllStudentView только: Идентификатор студента, изображение студента и имя студента для всех студентов, и я могу отобразить его правильно, и он работает нормально. (См. Рисунок ниже.)
КАРТИНКА ЗДЕСЬ !!!
Если пользователь нажимает на «View More Details» для одного студента, этовозможность выбрать выбранный идентификатор и перенаправить его на другую страницу, где пользователю необходимо просмотреть все данные для выбранного учащегося по идентификатору.
Шаг 2: У меня есть другойМетод действия с именем " studentDetails " внутри того же контроллера " Управление ", который должен отображать все детали (модель свойства) для выбранного учащегося.
Внутри studentDetails метод действия, когда я пытаюсь создать экземпляр " AllStudentModel " Я получил нулевое значение при запуске и отладке его !!! Не уверен, почему ???
Метод действия StudentDetails не имеет созданной для него модели, поскольку я использую ту же модель, что и "AllStudentModel", потому что это тот же шаблон данных !!!
[HttpGet]
public ActionResult StudentDetails(int? id)
{
Debug.WriteLine("Id selected by user : " + id); // This line is working fine as I'm able to see the Id the user selected from "AllStudentView" when he clicks "View More Details"
// ++++++ GETTING NULL VALUE FOR ALL THE BELOW WHILE DEBUGGING ++++++
var stdModel = new AllStudentModel();
Debug.WriteLine(stdModel.Id); // Getting Null value from all the below
Debug.WriteLine(stdModel.Title); // Getting Null value from all the below
Debug.WriteLine(stdModel.Name); // Getting Null value from all the below
Debug.WriteLine(stdModel.Surname); // Getting Null value from all the below
Debug.WriteLine(stdModel.Course); // Getting Null value from all the below
Debug.WriteLine(stdModel.Picture); // Getting Null value from all the below
}
Пока что я не использую никакого взаимодействия с базой данных !!!
Кто-то сказал мне, что для инициализации "AllStudentModel" мне нужен КОНСТРУКТОРсвойства. это правда ???
На шаге 1 все работает отлично !!! Только на шаге 2 я получаю нулевое значение
Почему я не могу получить данные из метода действия "studentDetails"?
Не могли бы вы помочь?
===========================================================================
Также я хотел добавить, что: я выбираю данные из API и загружаю эти данныедля моделирования, как показано ниже: используя только PropertyDetailsList.Add (PropertyDetails); вместо возможно ... PropertyDetailsList.Add (New PropertyDetails); , как видно здесь
if (response2.IsSuccessStatusCode)
{
APIdatas2 = await response2.Content.ReadAsStringAsync();
PropertyDetailsModel PropertyDetails = JsonConvert.DeserializeObject<PropertyDetailsModel>(APIdatas2);
stringJsonConv = PropertyDetails;
PropertyDetailsList.Add(PropertyDetails);
Debug.WriteLine("ID ALREADY PROCESSED : " + item.Id);
}
else
{
Debug.WriteLine("Error occurred, the status code is : {0}", response2.StatusCode);
}