我正在努力了解如何在不创建会话变量的情况下保存页面状态。我有一个带有按钮的页面,该按钮可以更改页面的状态,发布后视图可能会返回,但状态错误。我试过 ViewBag,这不能在 java 范围内设置。我需要一个解决方案来保存 AuthType 的值..
@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>
}