ссылка на переданный строковый параметр для частичного просмотра - PullRequest
3 голосов
/ 23 февраля 2020

Я хочу передать строковую переменную в частичное представление, но я не уверен, как отобразить строковый параметр в частичном представлении. Я попытался найти ответы на похожие вопросы, но получил следующий вывод:

"my_app.Models.DogTreatments". Может кто-нибудь сказать мне, почему это?

Вот мой код:

Контроллер:

[HttpPost]
    public ActionResult CasIndex(int Sid)
    {

        string treat = dbContext.DogTreatments.Where(x => x.Sid == Sid).SingleOrDefault().ToString();




        //  ViewBag.TList = dbContext.DogTreatments.Where(x => x.Sid == Sid);

        return PartialView("DisplayTreatments", treat);
    }

Просмотр страницы:

@Html.Partial("~/Views/Shared/DisplayTreatments.cshtml")

Частичное представление :

@model string

@{
    Layout = null;
}

@Model

1 Ответ

1 голос
/ 23 февраля 2020

То, что вы видите правильно из-за вашего оператора LINQ.

string treat = dbContext.DogTreatments.Where(x => x.Sid == Sid).SingleOrDefault().ToString();

Этот dbContext.DogTreatments.Where(x => x.Sid == Sid) фильтрует все DogTreatments Where x.Sid == Sid

Этот .SingleOrDefault() выбирает single object типа DogTreatments или по умолчанию (ноль).

toString() преобразует тип объекта в его строковый формат, следовательно my_app.Models.DogTreatments

Возможно, это удовлетворит ваш требование:

Возврат объекта из запроса LINQ:

var treat = dbContext.DogTreatments.Where(x => x.Sid == Sid).SingleOrDefault();
return PartialView("DisplayTreatments", treat);

Частичное представление будет выглядеть следующим образом:

@using my_app.Models.DogTreatments //(this might need to be fixed)
@model DogTreatments

@{
    Layout = null;
}

// in here you can access the DogTreatments object
// These are just examples as I don't know from question what DogTreatments properties are
   @if(Model != null) 
   {
    @Model.Name 
    @Model.Treatment
   }
...