将传递的字符串参数引用到局部视图

问题描述 投票:1回答:1

我想将字符串变量传递给局部视图,但是我不确定如何将字符串参数显示给局部视图。我尝试了在类似问题上发现的一些答案,但得到以下输出:

“ 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
c# asp.net model-view-controller controller partial-views
1个回答
0
投票

由于您的LINQ语句,您看到的是正确的。

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

[此dbContext.DogTreatments.Where(x => x.Sid == Sid)过滤所有DogTreatmentsWherex.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
   }
© www.soinside.com 2019 - 2024. All rights reserved.