Gib*_*boK 6 c# asp.net-mvc razor
目前我有一个可行的方法,它在点击Razor中的代码链接时正常工作:
@Html.ActionLink("New User ,Register", "Register", new { OpenID = Model.OpenID })
Run Code Online (Sandbox Code Playgroud)
我希望从控制器返回视图具有相同的效果,此时我正在使用此代码但没有成功
return View("Register", lm);
Run Code Online (Sandbox Code Playgroud)
我在MVC很新,所以我有点困惑.返回的视图与我的最后一个代码未命中smt,我支持与该部分相关联new { OpenID = Model.OpenID }
你能指出我正确的方向吗?
这是我的控制器的方法:
public ActionResult Register(string OpenID)
Run Code Online (Sandbox Code Playgroud)
Shy*_*yju 13
尽量避免 ViewData和ViewBag.尝试使用强类型ViewModels.这使你的代码干净(下一个开发人员将维护你的代码,HAPPY)
OpenID在你的房子里有一个房产ViewModel
public class RegisterViewModel
{
//Other Properties also
public string OpenID { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以在action方法中返回视图时设置此值:
public ActionResult Register(string OpenId)
{
var vm = new RegisterViewModel();
vm.OpenID = OpenId;
return View(vm);
}
Run Code Online (Sandbox Code Playgroud)
您可以将所需的任何数据添加到ViewBag变量中.
在您的控制器中,您可以设置值.
调节器
public ActionResult Register()
{
ViewBag.OpenID = OpenID;
return View()
}
Run Code Online (Sandbox Code Playgroud)
在剃刀视图中,您可以以相同的方式访问它
MVC3 Razor View
@ViewBag.OpenID
Run Code Online (Sandbox Code Playgroud)