Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не понимаю чего то принципиального в ASP.NET MVC 
:(
    Опции темы
sealmu
  Дата 23.7.2011, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 11.11.2006

Репутация: нет
Всего: нет



при запросе : /My/MyIndex

получаю 2 строчки из модели

при нажатии на EDIT попадаю в форму редактирования

редактирую и жму SUBMIT

при открытии MyIndex вижу свои изменения, 


но не могу понять как они сохраняються в объекте GenerateLogOnModel (DB)???
ведь нету ViewState!

почему static MyController() вызываеться только 1 раз??
ведь каждый раз это новый запрос!


И даже при вызове RedirectToAction("MyIndex");  я не передаю туда измененую model!
Как он показывает новые данные? откуда получил?







---Model---

Код

    public class GenerateLogOnModel
    {
        List<LogOnModel> data;

        public List<LogOnModel> Data
        {
          get { return data; }
          set { data = value; }
        }

        public GenerateLogOnModel()
        {
            data = new List<LogOnModel>();
            data.Add( new LogOnModel
            {
                UserName = "vasya",
                Password = "12345",
                RememberMe = true
            });

            data.Add( new LogOnModel
            {
                UserName = "kolya",
                Password = "11111",
                RememberMe = true
            });
        }
    }




---Controller---

 
Код

public class MyController : Controller
    {
        static GenerateLogOnModel DB;

        static MyController()
        {
            DB = new GenerateLogOnModel();
        }


        public ActionResult MyIndex()
        {
            var model = DB.Data;
            return View(model);
        }



        public ActionResult Edit(string UserName)
        {
            var model = DB.Data.Find(f => f.UserName == UserName.ToString());
            return View(model);
        }

 
        [HttpPost]
        public ActionResult Edit(string UserName, FormCollection collection)
        {
            var model = DB.Data.Find(f => f.UserName == UserName.ToString());

            if (TryUpdateModel(model))
            {
                return RedirectToAction("MyIndex");
            }

            return View(model);
        }

    }





---Views---


[myindex.cshtml]
Код

@model IEnumerable<MvcApplication1.Models.LogOnModel>

@{
    ViewBag.Title = "MyIndex";
}

<h2>MyIndex</h2>

<table>

@foreach (var item in Model)
{

    using(Html.BeginForm()) {
    
    <tr>
    <td>
    @Html.ActionLink("Edit","Edit", new { UserName = item.UserName})
    </td>
    <td>
    @item.UserName
    </td>
    <td>
    @item.Password</td>
    </tr>

    
    }
}


</table>




[edit.cshtml]
Код

@model MvcApplication1.Models.LogOnModel

@{
    ViewBag.Title = "Edit";
}

<h2>Edit</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>LogOnModel</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.UserName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.UserName)
            @Html.ValidationMessageFor(model => model.UserName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Password)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Password)
            @Html.ValidationMessageFor(model => model.Password)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.RememberMe)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.RememberMe)
            @Html.ValidationMessageFor(model => model.RememberMe)
        </div>

        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0571 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.