在另一个局部视图中加载局部视图
Load Partial View inside another Partial View
我有一个 PartialView (_Letra),它从名为 Music 的控制器接收信息......这样
public ActionResult CarregarLetra(string id, string artista, string musica)
{
return PartialView("_Letra", ArtMus(artista, musica));
}
public ResultLetra ArtMus(string artista, string musica)
{
//Conteúdo do metodo[..]
var queryResult = client.Execute<ResultLetra>(request).Data;
return queryResult;
}
到那时,没问题。现在我需要将其他信息传递给同一个 PartialView (_Letra)。此信息位于 PartialView (_Cifra) 中。
所以我在我的音乐控制器中添加了以下几行
public ActionResult CarregarCifra(string id, string artista, string musica)
{
return PartialView("_Cifra", GetCifra(artista, musica));
}
public ResultChords GetCifra(string artista, string musica)
{
var cfrTest= new Cifra();
var cifra = new ResultChords();
cifra.chords = cfrTest.GetInfs(artista, musica);
return cifra;
}
到目前为止一切正常,PartialView _Cifra 收到信息
我搜索了一下,发现我可以在PartialView _Letra中使用Html.Partial来加载我的PartialView _Cifra,然后我就这样做了
我加了
<div class="item">
<div class="text-carousel carousel-content">
<div>
@Html.Partial("_Cifra", new letero.mus.Infra.Models.ResultChords());
</div>
</div>
</div>
现在开始变得复杂了,为什么 return 为空,我相信这是由于我在 Html.Partial
中创建了一个新的 ResultChords 实例
我已经尝试使用 ViewBag 也可以在部分之间转置信息,但可能不正确,因为 return 也为 null。
我已经做了很多研究,但我没有获得 PartialView _Letra 所需的信息。
有更好的方法不使用 Html.Partial,或者正确使用它,我不知道。
您是否总是将新对象传递给第二部分?您可以在新 _Cifra
部分的顶部创建它。
_Cifra.cshtml
@{
var resultChords = new letero.mus.Infra.Models.ResultChords();
}
在_Letra中使用
@Html.Action("CarregarCifra", "Music", new { id=Model.Id, artista=Model.Artista, musica=Model.Musica });
如果变量在模型上可用,那么您可以将它们传入;否则,使用 Viewbag 并将它们设置在 CarregarLetra
我有一个 PartialView (_Letra),它从名为 Music 的控制器接收信息......这样
public ActionResult CarregarLetra(string id, string artista, string musica)
{
return PartialView("_Letra", ArtMus(artista, musica));
}
public ResultLetra ArtMus(string artista, string musica)
{
//Conteúdo do metodo[..]
var queryResult = client.Execute<ResultLetra>(request).Data;
return queryResult;
}
到那时,没问题。现在我需要将其他信息传递给同一个 PartialView (_Letra)。此信息位于 PartialView (_Cifra) 中。
所以我在我的音乐控制器中添加了以下几行
public ActionResult CarregarCifra(string id, string artista, string musica)
{
return PartialView("_Cifra", GetCifra(artista, musica));
}
public ResultChords GetCifra(string artista, string musica)
{
var cfrTest= new Cifra();
var cifra = new ResultChords();
cifra.chords = cfrTest.GetInfs(artista, musica);
return cifra;
}
到目前为止一切正常,PartialView _Cifra 收到信息
我搜索了一下,发现我可以在PartialView _Letra中使用Html.Partial来加载我的PartialView _Cifra,然后我就这样做了
我加了
<div class="item">
<div class="text-carousel carousel-content">
<div>
@Html.Partial("_Cifra", new letero.mus.Infra.Models.ResultChords());
</div>
</div>
</div>
现在开始变得复杂了,为什么 return 为空,我相信这是由于我在 Html.Partial
中创建了一个新的 ResultChords 实例我已经尝试使用 ViewBag 也可以在部分之间转置信息,但可能不正确,因为 return 也为 null。
我已经做了很多研究,但我没有获得 PartialView _Letra 所需的信息。
有更好的方法不使用 Html.Partial,或者正确使用它,我不知道。
您是否总是将新对象传递给第二部分?您可以在新 _Cifra
部分的顶部创建它。
_Cifra.cshtml
@{
var resultChords = new letero.mus.Infra.Models.ResultChords();
}
在_Letra中使用
@Html.Action("CarregarCifra", "Music", new { id=Model.Id, artista=Model.Artista, musica=Model.Musica });
如果变量在模型上可用,那么您可以将它们传入;否则,使用 Viewbag 并将它们设置在 CarregarLetra