在Visual Studio文档的“使用ASP.NET Core中的数据”的第"Updating related data - EF Core Razor Pages (7 of 8)"节中,我在尝试理解Html.Row()
方法在此代码中的工作方式时遇到了一些麻烦:
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<table>
<tr>
@{
int cnt = 0;
foreach (var course in Model.AssignedCourseDataList)
{
if (cnt++ % 3 == 0)
{
@:</tr><tr>
}
@:<td>
<input type="checkbox"
name="selectedCourses"
value="@course.CourseID"
@(Html.Raw(course.Assigned ? "checked=\"checked\"" : "")) />
@course.CourseID @: @course.Title
@:</td>
}
@:</tr>
}
</table>
</div>
</div>
Html.Row()
方法到底如何工作?
在多对多关系中更新关联实体是否有其他选择?
答案 0 :(得分:0)
默认情况下,在Razor页面(或“视图”)中呈现的所有字符串均为encoded as HTML-也就是说,所有HTML字符都将转换为它们的HTML实体。这是一项安全措施,可帮助新手开发人员将潜在的XSS攻击引入其网站。
Html.Raw
方法不对字符串进行编码。它旨在用于在Razor页面中呈现HTML。我不理解您复制的代码片段中使用了它。这是毫无意义。以下将实现相同的结果:
<input type="checkbox" name="selectedCourses" value="@course.CourseID" checked="@course.Assigned" />
如果course.Assigned
的值为true
,则呈现checked
属性。否则不是。