2015-11-02 3 views
1

Я хочу, чтобы вернуться к той же странице с сообщением об ошибке вместе с query string, когда модель является недействительным в эксплуатацию послеPass Строка запроса для Mvc действия вида

Мой код здесь

public ActionResult Action1(string Key) 
{ 

    // do something 
} 

[HttpPost] 
public ActionResult Action1(Model user) 
{ 
    if (ModelState.IsValid) 
       { 
    // do some stuff here 
    } 
    else 
    // redirect to same page with query string key and also error message 
} 

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

+1

[Это может помочь вам] (http://benfoster.io/blog/aspnet-mvc-custom-error-pages) – hellogoodnight

ответ

2
[HttpPost] 
public ActionResult Action1(Model user) 
{ 
    if (ModelState.IsValid) 
    { 
    // do some stuff here 
    } 
    else 
    { 
     return this.RedirectToAction ("Action1", new { value1 = "QueryStringValue" }); 
    } 
} 

Что бы вернуть это:

/controller/Action1?value1=QueryStringValue 

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

[Required] 
    [DataType(DataType.Text)] 
    [StringLength(40)] 
    public string FirstName { get; set; } 

    [Required] 
    [DataType(DataType.Text)] 
    [EmailAddress] 
    public string Email { get; set; } 

    [Required] 
    [DataType(DataType.Password)] 
    [StringLength(1000, MinimumLength = 8)] 
    public string Password { get; set; } 

    [Required] 
    [System.Web.Mvc.Compare("Password")] 
    [DataType(DataType.Password)] 
    public string PasswordConfirmation { get; set; } 
+0

А вот сообщения об ошибках не отображаются, это равно RedirectToAction(), мне нужно view() –

+0

Жаль, что я не получил вас. Что вы понимаете, не получая сообщений об ошибках? –

+0

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

2
public ActionResult Action1(Model user) 
{ 
    if (ModelState.IsValid) 
    { 
     // all is okay 
    } 
    // If we got this far, something failed, redisplay form 
    ModelState.AddModelError("", "The user name or password provided is incorrect."); 
    return View(model); 
} 
Смежные вопросы