gpt4 book ai didi

javascript - 添加多个局部 View ,但第一个 View 缺少表单

转载 作者:行者123 更新时间:2023-11-28 01:55:49 25 4
gpt4 key购买 nike

我有以下内容:

_ImageGalleryPartial

@if (Model != null)
{
foreach (var item in Model)
{
@Html.Partial("_ImageItem", item);
}
}

_ImageItemPartial

@model WebsiteEngine.Models.PortfolioImage

@{
string url = VirtualPathUtility.ToAbsolute(String.Format("~/{0}", Html.DisplayFor(m => m.FileName)));
}

@using (Html.BeginForm("DeleteImage", "Portfolio", FormMethod.Post, new { @class = "deleteImageForm" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true);

@Html.HiddenFor(m => m.Name)
@Html.HiddenFor(m => m.FileName)
@Html.HiddenFor(m => m.Order)
@Html.HiddenFor(m => m.PortfolioID)
@Html.HiddenFor(m => m.PortfolioImageID)

<div class="span3">
<div class="item">
<a class="fancybox-button" data-rel="fancybox-button" title="Photo" href="@url">
<div class="zoom">
<img src="@url" alt="Photo" />
<div class="zoom-icon"></div>
</div>
</a>
<div class="details">
<a href="#" class="icon deleteImage" data-form=""><i class="icon-remove"></i></a>
</div>
</div>
</div>
}

当我使用 Chrome 开发工具检查页面元素时,第一个元素缺少周围的表单。如果我检查页面源代码(使用右键)单击,则表单就在那里。这让我相信某些 JS 正在删除表单,因此我禁用了 JS,但它仍然丢失。

如果更改_ImageGalleryPartial,则如下所示(注意添加了一个空模型):

@if (Model != null)
{
@Html.Partial("_ImageItem", new WebsiteEngine.Models.PortfolioImage());
foreach (var item in Model)
{
@Html.Partial("_ImageItem", item);
}
}

然后所有“正确”的元素都会得到一个表单,但同样,第一个项目没有。

我仍然倾向于认为这是一个 JS 问题,但我有点困惑,因为禁用 JS 并不能解决它。这是 MVC 的一些异常行为吗?

请注意,我已经简化了上面的布局,实际上我确实有一个或两个嵌套表单,但假设这没问题,因为其他一切都很好,只是第一个部分被破坏了。

有什么想法吗?

最佳答案

Html 表单不能嵌套。

Chrome 将忽略非法标签,因此它们不会显示。

您可以阅读此post了解更多信息。

关于javascript - 添加多个局部 View ,但第一个 View 缺少表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com