Note that there are some explanatory texts on larger screens.

plurals
  1. POViewModel is empty MVC2
    primarykey
    data
    text
    <p>When I press the submit button and access the Controller my ViewModel is empty. I don't know why this is happening, I have similar code to this on the other views and they do pass through data.</p> <p><strong>Controller</strong></p> <pre><code> public ActionResult DeleteCategory(int id) { var data = _service.GetIndividualCategory(id); if (data == null) return View("NotFound"); // If attached to traders send to other view var traders = _service.GetTradersAttachedToCategory(id); if (!traders.Any()) { var category = new DeleteCategoryViewModel { Description = data.Description, Id = data.Id }; return View(category); } var trader = new DisplayTradersAttachedToCategoryViewModel { Description = data.Description, Id = data.Id, BusinessName = traders.Select(x =&gt; new BusinessNameViewModel { BusinessName = x.BusinessName, Id = x.Id }), Categories = _service.GetCategories(id).Select(x =&gt; new SelectListItem {Text = x.Description, Value = x.Id.ToString()}) }; return View("DeleteCategoryAttachedToTraders", trader); } </code></pre> <p><strong>Accessed when 'Submit' button hit</strong></p> <pre><code> [HttpPost] public ActionResult DeleteCategoryFromTradersAttachNewCategory(DisplayTradersAttachedToCategoryViewModel displayTradersAttachedToCategoryViewModel) { if (displayTradersAttachedToCategoryViewModel.Button == "Back to List") return RedirectToAction("ViewCategories"); //Update traders with new category //delete category //if (_service.DeleteCategory((int)deleteCategoryViewModel.Id)) //{ // return RedirectToAction("ViewCategories"); //} return View("DeleteCategoryAttachedToTraders", displayTradersAttachedToCategoryViewModel); } </code></pre> <p><strong>DeleteCategoryAttachedToTraders.aspx</strong></p> <pre><code>&lt;%@ Page Title="Delete Category - Traders Attached to Category" Language="C#" MasterPageFile="~/Views/Shared/Master.Master" Inherits="System.Web.Mvc.ViewPage&lt;Internal.ViewModels.Controller.DisplayTradersAttachedToCategoryViewModel&gt;" %&gt; &lt;asp:Content ID="pageTitle" ContentPlaceHolderID="PageTitle" runat="server"&gt; Delete Category - Traders Attached to Category &lt;/asp:Content&gt; &lt;asp:Content ID="htmlHead" ContentPlaceHolderID="HtmlHead" runat="server"&gt; &lt;link href="&lt;%=ResolveUrl("~/Assets/Styles/CSS.css")%&gt;" rel="Stylesheet" type="text/css" /&gt; &lt;/asp:Content&gt; &lt;asp:Content ID="bodyContent" ContentPlaceHolderID="BodyContent" runat="server"&gt; &lt;div class="center"&gt;&lt;% using (Html.BeginForm("DeleteCategoryFromTradersAttachNewCategory", "Controller",FormMethod.Post)) {%&gt; &lt;h2&gt;Delete Category - Traders Attached to Category&lt;/h2&gt; &lt;div class="magiPadBig"&gt;&lt;/div&gt; &lt;div class="magiPadBig"&gt;&lt;/div&gt; &lt;%=Html.DisplayFor(x =&gt; x.BusinessName)%&gt; &lt;div class="magiPadBig"&gt;&lt;/div&gt; &lt;h3&gt;New Category&lt;/h3&gt; &lt;div class="magiPadBig"&gt;&lt;/div&gt; &lt;%=Html.DropDownList("Categories")%&gt; &lt;div class="magiPadBig"&gt; &lt;input type="submit" name="Button" value="Back to List" /&gt; &lt;input type="submit" name="Button" value="Submit" /&gt; &lt;/div&gt;&lt;% }%&gt; &lt;/div&gt; &lt;/asp:Content&gt; </code></pre> <p><strong>DisplayTradersAttachedToCategoryViewModel</strong></p> <pre><code>public class DisplayTradersAttachedToCategoryViewModel { public int Id { get; set; } public string Description { get; set; } [UIHint("BusinessNameDisplayTemplate")] public IEnumerable&lt;BusinessNameViewModel&gt; BusinessName { get; set; } public IEnumerable&lt;SelectListItem&gt; Categories { get; set; } public int Category { get; set; } public string Button { get; set; } } </code></pre> <p>Thanks in advance for any help.</p> <p>Clare</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload