MVC how to return a view with a parameter

asp.net-mvc, c#, razor

Solution

Try to avoid `ViewData` and `ViewBag` . try to use strongly typed `ViewModels`. That makes your code clean (and the next developer who is gonna maintain your code, HAPPY)

Have a Property called `OpenID` in your `ViewModel`

public class RegisterViewModel
{
     //Other Properties also
     public string OpenID { set; get; }
}

Now you can set this value when returning the view, in your `action` method:

public ActionResult Register(string OpenId)
{
     var vm = new RegisterViewModel();
     vm.OpenID = OpenId;
     return View(vm);
}

Problem

At the moment I have a Method that work, it is working when clicking a link here the code in Razor: ``` @Html.ActionLink("New User ,Register", "Register", new { OpenID = Model.OpenID }) ``` I would like have the same effect with but returning the View from the Controller, at the moment I'm using this code with no success ``` return View("Register", lm); ``` I'm pretty new at MVC so I'm a bit confused. The view returned with my last code miss smt and I support is connected with the part `new { OpenID = Model.OpenID }` Could you point me out in the right direction? This how it is the method for my controller: ``` public ActionResult Register(string OpenID) ```

Original source

Related problems