2011-12-23 3 views
-1

Je suis rendu une nouvelle vue de certaines vue (par exemple MainView) en utilisant Html.ActionLink("","",new{id=packageID})
et mon action du contrôleur (contrôle en passant ActionLink à) ressembler à
public ActionResult editChecks(int packageID) {return View();}
maintenant à Rendered View ("editChecks") je veux cacher packageID afin que je puisse l'utiliser (en le passant à une autre action du contrôleur) sur une autre action par n'importe quel moyen

ie j'utilise le formulaire dans View ("editChecks") qui est soumettre des données à une action dire (action2)Comment cacher ViewBag dans asp.net MVC3 rasoir Voir


Actuellement, je l'utilise à mon avis ("editChecks")
et string pid = Request.Form["packageID"]; à mon action de contrôleur (besoin de packageID) est-ce que cela fonctionne bien pour le long terme ??? Ou y a-t-il des alternatives que je devrais choisir?

Répondre

2

Vous pouvez déclarer tous les paramètres attendus dans la méthode. Vous pouvez également déclarer une valeur par défaut si elle n'est pas fournie. String packageID = "0"

EDIT: votre question est confuse. Si vous voulez y accéder sur la vue, utilisez viewbag.

public ActionResult action2(Int32 packageID) { 

    // can use packageID here 

// Or make it accessable on the view 
ViewBag.PackageID = packageID; 
    return View(); 
} 

Sur la vue que vous pouvez y accéder en tapant

@ViewBag.PackageID 

Bien que je me demande pourquoi votre IDPack est un String dans certains cas. Si vous n'utilisez pas Int32?

EDIT: Voulez-vous profiter de vos commentaires,

@Html.Hidden("PackageID", (Int32)@ViewBag.PackageID) 

Auront l'attribut sur la page, cachée. Et sera passé à tout appelé appelé (en supposant dans le formulaire) comme le nom "PackageID"

+0

Je ne veux pas Afficher la valeur transmise par l'action du contrôleur pour afficher plutôt j'ai besoin de cette valeur à la même vue dans le format caché (de sorte que la valeur est cachée à l'utilisateur final). Et je passe valeur à voir en utilisant ViewData dictionary (@ ViewBag.PackageID) – RollerCosta

+0

Comme @ Html.HiddenFor (model => model.PackageID) est utilisé pour – RollerCosta

+0

Ensuite, il suffit de faire @ Html.Hidden ("PackageID", @ViewBag .PackageID) 'C'est le même que ci-dessus, mais sans être attaché à un modèle. c'est-à-dire que vous pouvez lui attribuer n'importe quoi. – Doomsknight

-1

Votre problème est "Comment masquer ViewBag dans asp.net MVC3 rasoir Voir". Je pense que c'est le moyen facile de résoudre le problème que vous avez et est ci-dessous ...

//On Action Method 
public ActionResult Create() 
{ 
    ViewBag.LanguagePreference = LoginDetailsInfoBase.LanguagePreference.ToEnumDescription() == "Bangla" ? "--নির্বাচন করুন--" : "--Select--"; 
    return View(); 
} 

//On View engine.... 
@using (Html.BeginForm("Create", "ProductSale", FormMethod.Post, new { @class = "form-horizontal" })) 
{ 
    @Html.ValidationSummary(true)    
    @Html.Hidden("LanguagePreference",(string)ViewBag.LanguagePreference)   
} 

Espérons que cela pour vous UTILE. Merci

Questions connexes