2013-06-20 2 views
-2

Я хочу вставить значения в db.Действие контроллера

моя модель

public bool Create(string userName) { 
     _userNA = userName; 
     if (validate()) { 
      using (DatabaseCommaned cmd = new DatabaseCommaned()) { 
       cmd.CommandText = "INSERT INTO tUser(UNA, FNAID, MNAID, LNAID, Email, MobCountryCode, Mobile, ST, LN, ExpDT) VALUES(@una, @fnaid, @mnaid, @lnaid, @email, @mobCode, @mobile, @st, @ln, @exp)"; 
       cmd.Parameters.AddWithValue("@una", userName); 
       .... 


       _userID = cmd.ExecuteInsertAndGetID(); 
       if (_userID > 0) { 
        copyPropertiesInternally(); 
        Logs.LogEvent(LogEvent.UserCreated, userName); 
        ResetPassword(); 
        return true; 
       } 
       else { 
        _userNA = string.Empty; 
        return false; 
       } 
      } 
     } 
     else 
      return false; 
    } 

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

+3

Ваше именовании отстой .. –

+0

@BhushanFirake извините. может указать, какие значения я передаю от контроллера – user2495593

+3

Его очень неясно, что вы просите .. –

ответ

1

Не 100% уверен, что вы просите, но я возьму Пунт на него:

public ActionResult Create(string UserName) 
{ 
    var model = new User(); 
    var created = model.Create(UserName); 
    if(created) 
     return View(); 
    else 
     return RedirectToAction("Index"); 
} 

Отредактированный в ответ на комментарии:

Вы говорите, что у вас есть модель. Это должно выглядеть примерно так:

public class UserModel 
{ 
    public string UserName {get;set} 
    public string Email {get;set} 
    public string FirstName {get;set} 
} 

Ваше действие контроллера, то должно быть:

public ActionResult Create(UserModel model) 
{ 
    if (validate(model) { 
     var user = new User(); 
     user.Create(model); 
     return View(); 
    } 
    else 
     return RedirectToAction("Index"); 
} 

Ваш DB Код вставки должен быть:

public void Create(UserModel model) { 
     _userNA = model.UserName; 
     using (DatabaseCommaned cmd = new DatabaseCommaned()) { 
     cmd.CommandText = "INSERT INTO tUser(UNA, FNAID, MNAID, LNAID, Email, MobCountryCode, Mobile, ST, LN, ExpDT) VALUES(@una, @fnaid, @mnaid, @lnaid, @email, @mobCode, @mobile, @st, @ln, @exp)"; 
     cmd.Parameters.AddWithValue("@una", userName); 
     //.... 


     _userID = cmd.ExecuteInsertAndGetID(); 
     if (_userID > 0) { 
       copyPropertiesInternally(); 
       Logs.LogEvent(LogEvent.UserCreated, userName); 
       ResetPassword(); 
       return true; 
     } 
     else { 
       _userNA = string.Empty; 
       return false; 
     } 
    } 
} 

Это руководство только сломанный бит информации, которую вы указали. Надеюсь, вы поймете правильный путь.

+0

извините. Это не работает. Он перенаправляется на страницу index.not вставить в db – user2495593

+0

Это означает, что ваша вставка базы данных неверна, а не действие контроллера. Сообщение об ошибке исключения, которое вы получаете? Что делает ваш метод validate()? – jzm

+0

bool validate() {10 return! string.IsNullOrEmpty (UserName) &&! string.IsNullOrEmpty (Email) &&! string.IsNullOrEmpty (FirstName); } – user2495593

1

Создать класс ViewModel, например. CreateUserViewModel

public class CreateUserViewModel 
{ 
    //add properties reflecting the fields you want to capture in your HTML form 

    [Required] 
    public string UserName { get; set; } 

    //... etc 
} 

Затем создайте контроллер

public ActionResult CreateUser(CreateUserViewModel model) 
{ 
    if(ModelState.IsValid) 
    { 
     string username = model.UserName; 
     //... etc 

     bool created = MyUserModelClass.Create(username, ...); 
     if(created) 
      Return RedirectToAction("Index"); 
     else 
      return View(model); //return the form 
    } 
    else 
    { 
     return View(model); //return the form 
    } 
} 
+0

поблагодарить u.let me try – user2495593

+0

жаль, что я создал, это ложь – user2495593

Смежные вопросы