1
我有以下:添加多個局部視圖和第一缺少一個形式
_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有關?
只是要注意,我簡化了我上面的佈局,我的確有一個或2個嵌套形式,但假設是確定的其他一切正常,這只是這第一部分功能不正常。
任何想法?
我也在想這個,但看到其他人都在工作確定我認爲一切都很好。當我回家時我會看看這個。 – webnoob
非常感謝Yan,雖然我知道多種形式,但你的回答讓我專注於重寫我的表格如何工作,從而解決了問題。 – webnoob