abh*_*h12 10 c# asp.net-core-mvc
我要使用 2.2 版本的新 .NET 核心。我正在尝试使用以下代码将数据传递给部分视图:
<partial name="_Emplyees" model="@Model.Employees" view-data="@new ViewDataDictionary(ViewData) { { "index", index }}"/>
Run Code Online (Sandbox Code Playgroud)
但它给出了语法错误。有人可以指导如何传递数据并在局部视图中使用吗?提前致谢。
Chr*_*att 11
问题是您在view-data属性中有双引号。您需要在属性值周围使用单引号。
<partial name="_Emplyees" model="Employees" view-data='@new ViewDataDictionary(ViewData) { { "index", index } }'/>
Run Code Online (Sandbox Code Playgroud)
另外,@Model这里是多余的,所以我删除了它。
您可以在 ASP.Net Core MVC 中将 ViewData 传递给如下所示的部分视图:
1.型号:
public class TestModel
{
public string Employees { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
2.查看(创建.cshtml):
@model TestModel
@{
ViewData["index"] = true;
}
<partial name="_Emplyees" model="@Model" view-data="ViewData" />
Run Code Online (Sandbox Code Playgroud)
3.局部视图:
<h3>Index: @ViewData["index"]</h3>
@model TestModel
@if ((bool)ViewData["index"])
{
@Model.Employees
}
else
{
<input asp-for="Employees" type="number" class="form-control" />
}
Run Code Online (Sandbox Code Playgroud)
4.控制器:
public IActionResult Create()
{
var testmodel = new TestModel() { Employees = "aaa" };
return View(testmodel);
}
Run Code Online (Sandbox Code Playgroud)
5.结果:
参考: