簡體   English   中英

ASP.NET 核心 Razor 使用屬性作為后表單的基礎

[英]ASP.NET Core Razor using property as base for post form

@model Tuple<ApplicationsModel, AR.WebShop.Product<AR.TDShop.ProductCustomProperties>>

<div style="padding: 20px">
    <form method="post" action="/TDShop/AddNewProduct">
        @Html.EditorFor(x => x.Item2.ID);
        @Html.EditorFor(x => x.Item2.Rel);
        @Html.EditorFor(x => x.Item2.CatalogueID);
        @Html.EditorFor(x => x.Item2.Name);
        @Html.EditorFor(x => x.Item2.Thumbnail);
        @Html.EditorFor(x => x.Item2.SubGroupID);
        @Html.EditorFor(x => x.Item2.Unit);
        @Html.EditorFor(x => x.Item2.Active);
        @Html.EditorFor(x => x.Item2.VAT);
        @Html.EditorFor(x => x.Item2.DisplayIndex);
        @Html.EditorFor(x => x.Item2.ShortDescription);
        @Html.EditorFor(x => x.Item2.LongDescription);
        @Html.EditorFor(x => x.Item2.Sale);
        @Html.EditorFor(x => x.Item2.Keywords);
        @Html.EditorFor(x => x.Item2.Price);
        @Html.EditorFor(x => x.Item2.PurchasePrice);
        @Html.EditorFor(x => x.Item2.Tag.Klasifikacija);
        @Html.EditorFor(x => x.Item2.Tag.TransportnoPakovanje);
        @Html.EditorFor(x => x.Item2.Tag.TransportnoPakovanjeJM);
        @Html.EditorFor(x => x.Item2.Tag.KupovinaSamoUTransportnomPakovanju);
        @Html.EditorFor(x => x.Item2.Tag.PovezaniProizvod);
        <button>Create</button>
    </form>
</div>

如您所見,我將Tuple<ApplicationsModel, AR.WebShop.Product<AR.TDShop.ProductCustomProperties>>作為我的 model 發送,但對於我的表單,我只使用Item2 問題是我的inputs被命名為Item2.ID, Item2.Rel etc. ,當我嘗試在帖子中捕獲我的 object 時: public IActionResult AddNewProduct(AR.WebShop.Product<AR.TDShop.ProductCustomProperties> product)它無效,但如果第一部分Item2被刪除,那么它會起作用。

有沒有辦法在 razor 中將其移除?

編輯我試過添加這個:

@{ 
    AR.WebShop.Product<AR.TDShop.ProductCustomProperties> p = Mode.item2;
}

並像這樣使用它:

@Html.EditorFor(x => p.ID)

但它將其命名為p.ID而不是ID

找到解決方案並發現了一件更精彩的事情。

首先,我自己的編輯答案有效,但我需要做的就是將我的HttpPost方法從AddNewProduct(AR.WebShop.Product<AR.TDShop.ProductCustomProperties> product更改為AddNewProduct(AR.WebShop.Product<AR.TDShop.ProductCustomProperties> p (就像我在我的視圖中調用它一樣。

我發現不是像這樣調用每個屬性,我所要做的就是像@Html.EditorFor(x => pr)那樣調用它,它會列出所有屬性!

所以我的完整工作代碼現在看起來像這樣:

@model Tuple<ApplicationsModel, AR.WebShop.Product<AR.TDShop.ProductCustomProperties>>
@AR.WebShop.Product<AR.TDShop.ProductCustomProperties> p = Model.Item2;

<div style="padding: 20px">
    <form method="post" action="/TDShop/AddNewProduct">
        @Html.EditorFor(x => p)
        <button>Create</button>
    </form>
</div>

並用AddNewProduct(AR.WebShop.Product<AR.TDShop.ProductCustomProperties> p

好干凈:')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM