Не могу получить информацию для отправки в базу данных - PullRequest
0 голосов
/ 11 февраля 2010

Я пытаюсь сделать простое веб-приложение. У меня есть таблица User, которая представляет собой просто идентификатор, имя, пароль и адрес электронной почты. Идентификатор является счетчиком, поэтому он присваивается автоматически. У меня есть действие Пользователь / Создать, которое добавляет пользователя в базу данных. Они заполняют свое имя, пароль и адрес электронной почты и нажимают кнопку отправить.

Моя проблема в том, что поле не отправляется, и что странно, это точно такой же код, который у меня есть для контроллера "Entry", и он отлично работает ..

Код:

public interface IUserRepository {
    IQueryable<User> FindAllUsers();
    User GetUser(int id);
    void Add(User user);
    void Update(User user);
    void Delete(User user);
}

...

public void Add(User user) {
    db.Users.InsertOnSubmit(user);
    db.SubmitChanges();
}

...

public ActionResult Create()
{
    return View();
} 

//
// POST: /User/Create

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(User user)
{

    if(ModelState.IsValid){
        try
        {
            _repository.Add(user);
            return RedirectToAction("Index");
        }
        catch
        {
            return View(user);
        }
    }
    else
    {
        return View(user);
    }
}

Кто-нибудь знает, что не так? Просто чтобы уточнить, когда нажимается отправить, он загружает форму снова. Он не перенаправляет обратно на индекс.

Ответы [ 2 ]

1 голос
/ 11 февраля 2010

Вы пытались вставить точку останова в Visual Studio в начале метода Create (User user) , а затем запустить отладчик? Это хороший способ попытаться выяснить, что происходит в такой ситуации.

Я иногда обнаруживал, что метод, который, как я думал, должен выполняться, даже не вызывается - в этом случае точка останова никогда не будет достигнута.

Если точка останова достигнута, вы можете навести курсор на переменные в вашем коде, чтобы увидеть, какие значения они имеют.

1 голос
/ 11 февраля 2010

Да. Скорее всего вам нужно много для первичного ключа на вашем сообщении:

public ActionResult Create([Bind(Exclude="Id")] User user)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...