Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC从索引导航到增强的编辑视图_Asp.net Mvc_Entity Framework - Fatal编程技术网

Asp.net mvc MVC从索引导航到增强的编辑视图

Asp.net mvc MVC从索引导航到增强的编辑视图,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我有一个简单的索引视图,将产品显示为产品目录 视图模型: public class Products { public int ID { get; set; } public int CategoryID { get; set; } public string ProductName { get; set; } public string ProductDescription { get; set; } public string ProductPictu

我有一个简单的索引视图,将产品显示为产品目录

视图模型:

public class Products
{
    public int ID { get; set; }
    public int CategoryID { get; set; }
    public string ProductName { get; set; }
    public string ProductDescription { get; set; }
    public string ProductPicturePath { get; set; }
    public string UnitCost { get; set; }
    public string UnitPrice { get; set; }
    public string LowestUnitPrice { get; set; }
    public string SubscriptionPrice { get; set; }
    public string UnitMargin { get; set; }
    public string UnitProfit { get; set; }
    public bool   InCatalog { get; set; }
}
视图:

@using freshNclean.Models
@model IEnumerable<freshNclean.Models.Products>
@{
    ViewBag.Title = "Sortiment";
 }
 <div id="productCatalogContainer" class="container">
      <div id="productCatalogHeaderSection" class="headerSection">
         <h1 id="productCatalogHeaderTitle" class="headerTitle">
             @ViewBag.Title
         </h1>
         <i id="productCatalogHeaderIcon" class="headerIcon fas fa-gem" aria-hidden="true"></i>
     </div>
 <!-- table section -->
     <section id="productCatalogListPartialSection" class="table">
         <div id="productCatalogSeparatorSection" class="separatorSection">
             <hr id="productCatalogSeparator" class="separator" />
         </div>
         <div id="productCatalog" class="productTableSection row">
              @foreach (var item in Model)
             {
                 if (item.InCatalog == true)
                 {
                     <a id="productCatalogProductArea" class="tableArea col-xs-offset-1 col-xs-10 col-sm-offset-1 col-sm-10 col-md-offset-2 col-md-3 col-lg-offset-2 col-lg-3" href="@Url.Action("Details", "ShowProduct", new { id = item.ID })">
                         @Html.HiddenFor(modelItem => item.ID, new { @class = "tableField col-xs-12 col-sm-12 col-md-12 col-lg-12" })
                         <img id="productCatalogProductImage" class="tableImage col-xs-12 col-sm-12 col-md-12 col-lg-12" src="@Url.Content(item.ProductPicturePath)" alt="Produktbild" />
                         <div id="productCatalogProductNameField" class="tableField col-xs-12 col-sm-12 col-md-12 col-lg-12">
                             @Html.DisplayFor(modelItem => item.ProductName)
                         </div>
                         <div id="productCatalogProductDescriptionField" class="tableField col-xs-12 col-sm-12 col-md-12 col-lg-12">
                        @Html.DisplayFor(modelItem => item.ProductDescription)
                    </div>

                    <div id="productCatalogLowestUnitPriceField" class="tableField col-xs-12 col-sm-12 col-md-12 col-lg-12">
                        ab @Html.DisplayFor(modelItem => item.LowestUnitPrice)
                    </div>
                </a>
            }
        }
    </div>

    <div id="productCatalogListPartialMenuSeparatorSection" class="separatorSection">
        <hr id="productCatalogListPartialMenuSeparator" class="separator" />
    </div>
    @Html.ActionLink("zum Warenkorb", "ShowShoppingCart", "", htmlAttributes: new { @class = "formButton col-xs-offset-1 col-xs-10 col-sm-offset-1 col-sm-10 col-md-offset-3 col-md-6 col-lg-offset-3 col-lg-6" })
</section>
 </div>
 <!-- link back to menu -->
 <div id="productCatalogReturnToMenuSection" class="linkSection">
     @Html.ActionLink("zurück zum Menü", "Profile", "", htmlAttributes: new { @id = "productCatalogReturnToMenuButton", @class = "link" })
 </div>
 </div>
 @section Scripts {
     @Scripts.Render("~/bundles/jqueryval")
 <!-- Google Places -->
     <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBYK8aBCsb1dFrzXqIgUq07ZwO3w3_fGCs&libraries=places&callback=initAutocomplete" async defer></script>
 }
这一切都很好。。但现在我希望单击单个产品以显示一个新视图,其中包含产品的详细信息以及定义订单数量的可能性

新虚拟机:

    public class ProductViewModel
{
    public int ProductID                           { get; set; }

    public string ProductName                         { get; set; }

    public string ProductDescription                  { get; set; }

    public string ProductPicturePath                  { get; set; }

    [RegularExpression(@"^\((\d{3}?)\)$", ErrorMessage              = "Du brauchst die Anzahl nicht ausschreiben - verwende Ziffern.")]
    [Display(Name                                                   = "Bestellmenge")]
    public string SubscriptionQuantity                { get; set; }

    [Display(Name                                                   = "Lieferrhytmus")]
    public string SubscriptionCadenceCategory         { get; set; }

    public string SubscriptionCadenceValue            { get; set; }

    [Display(Name                                                   = "Preis im Abonnement")]
    public string SubscriptionPrice                   { get; set; }

    public bool IsSingleOrder                       { get; set; }

    [RegularExpression(@"^\((\d{3}?)\)$", ErrorMessage              = "Du brauchst die Anzahl nicht ausschreiben - verwende Ziffern.")]
    [Display(Name                                                   = "Bestellmenge")]
    public string Quantity                            { get; set; }

    [Display(Name =                                                 "Preis pro Einheit")]
    public string UnitPrice                           { get; set; }

    public DateTime ActivityDateTime                    { get; set; }

    public string ActivityLatitude                    { get; set; }

    public string ActivityLongitude                   { get; set; }

    public string ActivityLocation                    { get; set; }


}

现在,我遇到的难题是如何显示新的增强模型-我遇到的问题是,使用标准方法,单击产品目录中的产品会在URL中创建类似/ShowProduct/5的内容,但这会迫使我在详细信息视图中使用与目录中相同的视图模型,这不是我想要/需要的。如果有人知道如何解决这个问题,我将非常感谢您的意见。此外,请注意,我是一个绝对的初学者,因此例子是高度赞赏。谢谢大家!

是否要更改URL?当您点击
/showproduct/5
时,您将获得一个ID,然后您可以获取视图中显示的详细信息Thank you@PriyeshKumar-但是我如何做到这一点呢?
    public class ProductViewModel
{
    public int ProductID                           { get; set; }

    public string ProductName                         { get; set; }

    public string ProductDescription                  { get; set; }

    public string ProductPicturePath                  { get; set; }

    [RegularExpression(@"^\((\d{3}?)\)$", ErrorMessage              = "Du brauchst die Anzahl nicht ausschreiben - verwende Ziffern.")]
    [Display(Name                                                   = "Bestellmenge")]
    public string SubscriptionQuantity                { get; set; }

    [Display(Name                                                   = "Lieferrhytmus")]
    public string SubscriptionCadenceCategory         { get; set; }

    public string SubscriptionCadenceValue            { get; set; }

    [Display(Name                                                   = "Preis im Abonnement")]
    public string SubscriptionPrice                   { get; set; }

    public bool IsSingleOrder                       { get; set; }

    [RegularExpression(@"^\((\d{3}?)\)$", ErrorMessage              = "Du brauchst die Anzahl nicht ausschreiben - verwende Ziffern.")]
    [Display(Name                                                   = "Bestellmenge")]
    public string Quantity                            { get; set; }

    [Display(Name =                                                 "Preis pro Einheit")]
    public string UnitPrice                           { get; set; }

    public DateTime ActivityDateTime                    { get; set; }

    public string ActivityLatitude                    { get; set; }

    public string ActivityLongitude                   { get; set; }

    public string ActivityLocation                    { get; set; }


}