2015-01-12 1 views
3

У меня есть несколько html-помощников. Когда я нажимаю кнопку входа в систему, я отключу user_register div с помощью jquery, и когда я вводим данные, имя пользователя и пароль, которые связующее устройство может связывать должным образом, но когда я нажимаю «Регистр», я отключу div_ user_login и разрешаю user_register div и когда я вводим только данные email и firstname - это то, что связующее устройство модели может связывать, а не имя пользователя, пароль. Это becoz Я использую одни и те же html-помощники более одного раза. Как справиться с этим. У меня есть следующий кодРабота с несколькими html-помощниками с таким же именем в mvc4

<div class="user_login"> 
<label>Email/Username</label> 
    @Html.TextBoxFor(model => model.Email) 
    <br /> 
    <label>Password</label> 
    @Html.TextBoxFor(model => model.Password)          
    <br />  
    <div class="action_btns"> 
     <div class="one_half"><a href="#" class="btn back_btn"><i class="fa fa-angle-double-left"></i>Back</a> 
     </div> 
    <div class="one_half last"> 
     <input type="submit" style="border: none" name="action" class="btn btn_red" value="Login" /> 
     </div> 
    </div> 
    <a href="#" class="forgot_password">Forgot password?</a> 
    </div> 
    <div class="user_register"> 
    <label>Full Name</label> 
    @Html.TextBoxFor(model => model.First_Name)<br /> 
    <label>Email Address</label> 
    @Html.TextBox(model=>model.Email)<br /> 
     <label>User Name</label> 
     @Html.TextBoxFor(model => model.User_Name)<br /> 
     <label>Password</label> 
     @Html.TextBox(model=>model.Password") <br /> 
    </div> 

Контроллер следует здесь

public ActionResult Index(Customer customer, string Action) 
{ 
//something here 
} 

ответ

1

Вы не показали вам полное представление, но предполагая, что все эти элементы управления генерируются внутри одного элемента формы, то все элементы управления опубликуем обратно, если вы отключите входы. Если это так, то первый ввод с name="Email" связан, а второй игнорируется DefaultModelBinder. (поскольку первый из них только скрыт, его значение, вероятно, пустое). Ваш сценарий должен гарантировать, что 2 входа в секции входа отключены, например

@Html.TextBoxFor(model => model.Email, new { id = "login-email" }) 

и

$('#login-email').prop('disabled', true); 

Обратите внимание на атрибут id, так что вы можете выбрать правильный (и предотвратить повторяющиеся идентификаторы которых недопустимый HTML.

в качестве альтернативы можно создать 2 отдельные формы.

+0

Спасибо. Второй подход, который я попробовал, и она работала. также будет пытаться сделайте первый. Еще раз спасибо. – Shaik

+0

Если вы выберете второй вариант, я бы предложил два отдельных метода post и указать их в теге 'form' -' @using (Html.BeginForm («LogIn», «Account»)) {'и' @using (Html.BeginForm («Регистрация», «Учетная запись»)) {'. Но на самом деле у вас должно быть две отдельные модели, методы и представления, потому что они являются отдельными действиями и будут иметь отдельную логику (например, действие register должно иметь свойство 'ConfirmPassword' с атрибутом' [Compare] '. –

+0

Большое спасибо за то, что вы такой добрый – Shaik

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