Возникли проблемы с ModelBinding и словарем, ASP.NET MVC 2.0 - PullRequest
1 голос
/ 20 октября 2010

Используя следующую модель, я ожидаю, что при нажатии кнопки «Отправить» метод «Изменить метод на огонь» и параметр model будут иметь скорректированные значения.Но он продолжает возвращать экземпляр класса со всеми нулевыми значениями.Как будто никакой привязки к модели не происходит.

class Trait
{
 string Name { get; set; }
 // other properties
}

class DesignViewModel
{
 Dictionary<Trait, int> Allocation { get; set; }
}

Контроллер

public ActionResult Create()
{
 var model = new DesignViewModel();

 // retrieve traits from database
 foreach(var trait in Repository.Traits)
   model.Allocation.Add(trait, 0);
 return View(model);
}
[HttpPost]
public ActionResult Edit(DesignViewModel model)
{
 // nothing works yet, so I don't have a lot of code here... 
}

HTML

Страница верхнего уровня

<%@ Page Title="" Language="C#" MasterPageFile="~/Areas/Setup/Views/Shared/Setup.master"
    Inherits="System.Web.Mvc.ViewPage<OtherModel>" %>
    <% Html.RenderAction("Design", "Test"); %>

Частичное представление

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DesignViewModel>" %>

    <% using (Html.BeginForm("Edit", "Test", FormMethod.Post ) ) {%>
     <div id="eq">
      <% foreach (var trait in Model.Allocations) { %>
      <div style="margin: 15px;">
       <%: trait.Key.Name %>
       <br />
       <span class="slider"></span>
       <%: Html.TextBox(trait.Key.Name, trait.Value,  new { @class = "spent" , @readonly =  "readonly" })%>
      </div>
      <% } %>
     </div>
     <p>
      <input type="submit" value="Submit" />
     </p>
    <% } %>

1 Ответ

0 голосов
/ 20 октября 2010

Вам нужно добавить [HttpPost] в ваш метод Edit для его запуска во время запросов POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...