我是使用.NET Core 2.2版本的新手。我试图使用以下代码将数据传递给部分视图:
<partial name="_Emplyees" model="@Model.Employees" view-data="@new ViewDataDictionary(ViewData) { { "index", index }}"/>
但是它正在产生语法错误。 有人可以指导如何传递数据并在部分视图中使用吗?提前致谢。
我是使用.NET Core 2.2版本的新手。我试图使用以下代码将数据传递给部分视图:
<partial name="_Emplyees" model="@Model.Employees" view-data="@new ViewDataDictionary(ViewData) { { "index", index }}"/>
但是它正在产生语法错误。 有人可以指导如何传递数据并在部分视图中使用吗?提前致谢。
view-data
属性内使用了双引号。你需要在属性值周围使用单引号。<partial name="_Emplyees" model="Employees" view-data='@new ViewDataDictionary(ViewData) { { "index", index } }'/>
同时,这里的@Model
是多余的,所以我将其删除。
public class TestModel
{
public string Employees { get; set; }
}
2.View(Create.cshtml):
@model TestModel
@{
ViewData["index"] = true;
}
<partial name="_Emplyees" model="@Model" view-data="ViewData" />
3.局部视图:
<h3>Index: @ViewData["index"]</h3>
@model TestModel
@if ((bool)ViewData["index"])
{
@Model.Employees
}
else
{
<input asp-for="Employees" type="number" class="form-control" />
}
4.Controller:
public IActionResult Create()
{
var testmodel = new TestModel() { Employees = "aaa" };
return View(testmodel);
}
5.结果:
参考:
~/Views/Shared/_PageTop.cshtml
<a asp-controller="Home" asp-action="Index">Go Back</a>
<h1>@ViewData["Title"]</h1>
~/Views/Create.cshtml
@{
ViewData["Title"] = "Create";
}
<partial name="_PageTop" />
请查看ASP.NET Core中的部分视图和ASP.NET Core中的部分标签助手。
<partial name="Shared/_ProductPartial.cshtml" for="Product">
<partial name="_ProductViewDataPartial" for="Product" view-data="ViewData">
@await Html.PartialAsync("_ProductPartial", product)