Хорошо, я не пытаюсь сделать что-то сверхсложное, я искал и искал, и бродил по всем блогам и форумам, которые я могу найти.Я собираюсь вырвать мои волосы, потому что никто просто не откроет , покажет , как это работает.
Я хочу использовать IDictionary в моей модели.Не берите в голову причину, это не имеет значения.Я просто хочу сделать что-то очень простое и понять, что происходит.
Может кто-нибудь помочь мне разобраться в HTML, который я должен добавить в представление, чтобы сделать эту работу правильной?Пожалуйста?Я пробовал Html.TextBoxFor, и он возвращает нулевое значение при обратной передаче.Я попытался вручную, используя индекс элемента словаря, и он возвращается нулевым.Я действительно расстраиваюсь, и все, что я вижу, это перенаправление на блоги, которые не отвечают на вопрос.
Контроллер
public ActionResult DictionaryView()
{
var model = new Dictionary<string, int>
{
{ "First", 0 },
{ "Second", 0 },
{ "Third", 0 },
{ "Fourth", 0 }
};
return View(model);
}
[HttpPost]
public ActionResult DictionaryView(Dictionary<string, int> dictionary)
{
return null;
}
HTML
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Collections.Generic.IDictionary<string,int>>" %>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<h2>Dictionary</h2>
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<% for (int i = 0; i < Model.Count; i++) { %>
**// This is there I am stuck!**
<% } %>
<p>
<input type="submit" value="Submit" />
</p>
<% } %>
</asp:Content>