Comment effacer une session à l'aide de jquery?
Je développe une application mvc. J'ai utilisé de la session en vue et le contrôleur.
La première fois quand j'sélectionner une valeur à partir de la liste déroulante. la valeur sélectionnée est géré par la vue et le contrôleur.
mais lorsque j'ai à nouveau sélectionner une valeur à partir de la liste déroulante , que de temps sur événement de changement que je veux effacer la session.
ci-dessous mon code pour afficher
@model IEnumerable<StockWatch.DTO.ProductDTO>
@using GridMvc.Html
@using System.Web.UI.WebControls;
@{
ViewBag.Title = "Index";
int VendorId = Convert.ToInt32(Session["vendorId"]);
}
<!DOCTYPE html>
<html>
<head>
<link href="@Url.Content("~/Content/Custom1.css")" rel="stylesheet" type="text/css" />
</head>
<body>
@if (Model == null)
{
<div id="vendorDropdownDiv" class =" row-fluid Span9" style ="margin-bottom :15px">
<div class="span6" >
<div class="span4" style="margin-left:35px;" >
<label >Vendor</label>
</div>
<div class="span6" >
@Html.DropDownList("VendorId", ViewData["list"] as SelectList, "-- Select vendor --", new { @id = "vendorDropdown", @name = "VendorId" })
</div>
</div>
<div class="span11" style="text-align:right">
<input class="btn btn-primary" type="submit" value="Create" id="create"/>
<input class="btn btn-default" value="Cancel" style="width:45px;" onclick="window.location.href='@Url.Action("index") '"/>
</div>
</div>
}
<div id="indexview"></div>
@if (Model != null)
{
<div id="modeldiv" class="span12" style="margin-left:0px;margin-right:0px;">
<div class="row-fluid" style="margin-top:30px;margin-bottom:10px;">
<div class="listheading span9" style="font-size:22px;">Products</div>
<div class="createlink span3" style="text-align:right;margin-left:10px;">
@Html.ActionLink("+ Add Product", "Create")
</div>
}
</body>
</html>
<script>
$(document).ready(function () {
$('#vendorDropdown').change(function () {
});
});
</script>
et contrôleur de code comme ci-dessous
public ActionResult Index(int VendorId=0)
{
if (VendorId == 0)
{
VendorId = Convert.ToInt32(Session["vendorId"]);
}
VendorService vendorService = new VendorService();
SelectList SelectList = new SelectList(vendorService.GetAll().OrderBy(t => t.Name), "Id", "Name", VendorId);
ViewData["list"] = SelectList;
var Categorylist = new SelectList(new[] { "Dull", "Anodised", "All" });
ViewData["Categorylist"] = Categorylist;
if (VendorId != 0 )
{
Session["vendorId"] = VendorId;
ProductService productService = new ProductService();
var productlist = new List<ProductDTO>();
productlist = productService.GetAll().Where(x => x.VendorId == VendorId).ToList();
return View(productlist );
}
else
{
return View();
}
}
ici comment effacer Convert.ToInt32(Session["vendorId"]);
cette session à l'aide de jquery.
thank u à l'avance
- Créer une action
ClearSession
et de l'appeler à l'aide$.ajax
ou$.get
. - Les séances sont maintenues sur le serveur et ne pouvait pas retirer sur le client sans l'envoi d'une requête au serveur. Vous pouvez faire un appel ajax et de le faire.
- Vous pouvez essayer ceci: stackoverflow.com/questions/19470517/...
Vous devez vous connecter pour publier un commentaire.
Séances sont conservés sur le serveur et ne pouvait pas retirer sur le client sans l'envoi d'une requête au serveur.
Comme suggéré par Patrick Hofman, vous pouvez Créer une action ClearSession et de l'appeler à l'aide de $.ajax ou $.obtenez de l'.
Que la session est stocké côté serveur - pas côté client, vous aurez besoin de charger au serveur pour la détruire. maing une demande à une méthode d'action
pourrait ce faire -
Créer une méthode d'action dans votre mvc site -
puis, à partir de la page, composez le code javascript suivant:
appel de $ajax ou $méthode post pour effacer une session
Créer une action dans votre contrôleur
clear
etabandon
la session. Vous pouvez appeler cette action à l'aide de jQuery ajax et votre session d'obtenir effacée.Je sais que c'est peut-être en retard mais j'espère que cela va vous aider
Tout d'abord, vous avez besoin d'être soigneusement lorsque vous travaillez avec de la session.
Meilleure façon c'est de créer une classe qui sera faire tout le travail à votre session
Après ce que vous aurez besoin pour créer un contrôleur qui vous aidera à faire tout u besoin de js. Vous aurez quelque chose comme ceci:
le moyen d'appeler cette méthode à partir d'un client, vous pouvez choisir par vous-même.
et par la façon dont, à votre avis:
vous allez utiliser:
Vous pouvez utiliser JQUERY avec ajax comme ci-dessous:
1 - dans le fichier HTML utiliser un id de balise, par exemple id="clear_session" .
2 - utilisation "clear_session" cliquez sur l'événement pour commencer ajax dans votre fichier js :
3 - utiliser ce code index.php fichier :
veuillez répondre pour plus de guide.
Saeed Rostami.
IL est Ingénieur en I. R. I
+98 935 516 90 58