2013-04-02 3 views
0

У меня есть сценарий, когда мне нужно реализовать две формы, используя один вид ... Будет создана домашняя страница, имеющая форму для каждого входа в LogIn и SignUp (аналогично домашней странице Facebook). Я создал представление для моей домашней страницы (Index.cshtml), которая содержит код razor для обеих моих форм.Как я могу реализовать несколько форм, используя один вид?

[@using (Html.BeginForm("LogIn", "Home", FormMethod.Post))]

[@using (Html.BeginForm("SignUp", "Home", FormMethod.Post))]

Однако, при нажатии на кнопку «Войти» для формы Войти или нажав кнопку «Зарегистрироваться» кнопка для регистрационной формы, среда выполнение выдает ошибка в основном говорит, что Мне все еще нужно создавать представления как для действий LogIn, так и для SignUp, хотя я уже реализовал формы HTML в моем index.cshtml

[ПРИМЕЧАНИЕ. Я не использую поставщика членства ASP.NET. И этот вопрос, как правило, для двух форм, может быть любой из двух форм.]

Итак, мой вопрос: мне действительно нужно создать еще два вида с именем LogIn.cshtml и SignUp.cshtml? Разве это не приведет к дублированию кода? Я довольно новичок в MVC 4, и надеюсь, вы понимаете, что я пытаюсь сделать здесь, поэтому все, что я хочу знать, есть ли другой способ реализовать это? (JQuery, AJAX или что-то)

public class HomeController : Controller 
{ 
    [HttpGet] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpGet] 
    public ActionResult LogIn() 
    {  
     return View(); 
    } 

    [HttpPost] 
    public ActionResult LogIn(Account acc) 
    {     
     // some code 
     return View(); 
    } 

    [HttpGet] 
    public ActionResult SignUp() 
    {  
     return View(); 
    } 

    [HttpPost] 
    public ActionResult SignUp(Account acc) 
    {     
     // some code 
     return View(); 
    }  

} 
+0

Это происходит потому, что каждый метод контроллер рассчитывает иметь соответствующий вид. Если вы конкретно не указали, какой вид использовать, например 'return View (" use_this_view ")' или 'return View (" path_to_the_view/use_this_view.cshtml ")'. –

+0

Большое спасибо ... return View («use_this_view») отлично работает. –

ответ

0

Вы можете указать вид, который вы хотите быть возвращены:

[HttpGet] 
public ActionResult SignUp() 
{  
    return View("LogIn"); 
} 
Смежные вопросы