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

reference a passed string parameter to partial view

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

"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

由于您的 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() 选择类型 DogTreatments 或默认值(空)的 single object

toString() 会将对象类型转换为其字符串格式,因此 my_app.Models.DogTreatments

也许这会满足您的要求:

Return 来自 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
   }