2013-06-24 2 views
1

Я изо всех сил пытаюсь посмотреть, как сохранить состояние страницы без создания сеанса var. У меня есть страница с кнопкой, которая изменяет состояние страницы, при записи возможно, что представление возвращается, но в неправильном состоянии. Ive попробовал ViewBag, и это невозможно установить в java-области. Мне нужно решение, чтобы сохранить значение AuthType ..Сохранение состояния страницы mvc4

@model Trakman_Portal_Administration.Models.Connection 

@ {

ViewBag.Title = "Create"; 
var conStringType = ViewBag.conStringType; 

}

@Scripts.Render("~/bundles/jquery") 

<script type='text/javascript'> 

var authType = 1 

$(document).ready(function() { 
    alert(authType); 
    if (authType == 0) { 

     $("#usernameLabel").hide(); 
     $("#usernameField").hide().find('input:text').val(""); 

     $("#passwordLabel").hide(); 
     $("#passwordField").hide().find('input:text').val(""); 

     //$("#initialCatalogLabel").show(); 
     //$("#initialCatalogField").show(); 

     document.getElementById("button1").textContent = "Intergrated"; 
     authType = 1; 
    } 
    else { 

     $("#usernameLabel").show(); 
     $("#usernameField").show(); 
     $("#passwordLabel").show(); 
     $("#passwordField").show(); 
     //$("#initialCatalogLabel").hide(); 
     //$("#initialCatalogField").hide(); 

     document.getElementById("button1").textContent = "SQL Authentication"; 
     authType = 0; 
    } 

    $("button").click(function() { 

     //$("#usernameField").attr("value",""); 
     //$("#passwordField").attr("value",""); 


     if (authType == 0) { 

      $("#usernameLabel").hide(); 
      $("#usernameField").hide().find('input:text').val(""); 

      $("#passwordLabel").hide(); 
      $("#passwordField").hide().find('input:text').val(""); 

      //$("#initialCatalogLabel").show(); 
      //$("#initialCatalogField").show(); 

      document.getElementById("button1").textContent = "Intergrated"; 
      authType = 1; 

     } 
     else { 

      $("#usernameLabel").show(); 
      $("#usernameField").show(); 
      $("#passwordLabel").show(); 
      $("#passwordField").show(); 
      //$("#initialCatalogLabel").hide(); 
      //$("#initialCatalogField").hide(); 

      document.getElementById("button1").textContent = "SQL Authentication"; 
      authType = 0; 

     } 
    }); 
}); 

<h2>Create</h2> 



@using (Html.BeginForm()) 
{ 
@Html.ValidationSummary(true) 

<fieldset> 
    <legend>connection</legend> 
    <div class="editor-label"> 
     Authentication Type 
    </div> 
    <div> 
     <button id="button1" value="Intergrated" name="intergrated" >SQL Authentication</button> 
    </div> 
    <br /> 
    <br /> 
    <br /> 

    <div class="editor-label"> 
     Connection Name 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.conName) 
     @Html.ValidationMessageFor(model => model.conName) 
    </div> 
    <div class="editor-label"> 
     Data Source 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.dataSource) 
     @Html.ValidationMessageFor(model => model.dataSource) 
    </div> 
    <div class="editor-label" id="initialCatalogLabel"> 
     Initial Catalog 
    </div> 
    <div class="editor-field" id="initialCatalogField"> 
     @Html.EditorFor(model => model.initialCatalog) 
     @Html.ValidationMessageFor(model => model.initialCatalog) 
    </div> 

    <div class="editor-label" id = "usernameLabel"> 
     Username 
    </div> 
    <div class="editor-field" id="usernameField"> 
     @Html.EditorFor(model => model.username) 
     @Html.ValidationMessageFor(model => model.username) 
    </div> 
    <div class="editor-label" id = "passwordLabel"> 
     Password 
    </div> 
    <div class="editor-field" id = "passwordField"> 
     @Html.EditorFor(model => model.password) 
     @Html.ValidationMessageFor(model => model.password) 
    </div> 

    <p> 
     <input type="submit" value="Create"/> 
     @{ 
if (!string.IsNullOrEmpty(ViewBag.error)) 
{ 
       <div style="color:Red"> 
        @ViewBag.error 
       </div>   
} 
     } 
    </p> 

</fieldset> 

}

ответ

0

Я изо всех сил, чтобы увидеть, как сохранить состояние страницы без сеанса вар

Используя модель представления, чтобы сохранить вашу информацию через почтовые спины будет делать трюк.

public class ConnectionViewModel 
{ 
    public string AuthenticationType { get; set; } 
    public string ConnectionString { get; set; } 
    ... 
} 

public ActionResult Login() 
{ 
    // pass in defaults 
    return View(new ConnectionViewModel 
    { 
     AuthenticationType = "Windows", 
     ConnectionString = "..." 
    }); 
} 

[HttpPost] 
public ActionResult Login(ConnectionViewModel viewModel) 
{ 
    // pass view model back into view to retain values 
    return View(viewModel); 
} 
+0

Да, я думаю, что это сработает, просто подумал, что, возможно, я пропустил что-то новое для MVC. Спасибо, хотя –

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