将数据从控制器传递到视图Asp.net MVC3时输入Null
在我的控制器中,我传递一个id,将其存储在ViewBag中,然后从视图访问它,并给出一个空条目 这是控制器:将数据从控制器传递到视图Asp.net MVC3时输入Null,asp.net,asp.net-mvc,asp.net-mvc-3,Asp.net,Asp.net Mvc,Asp.net Mvc 3,在我的控制器中,我传递一个id,将其存储在ViewBag中,然后从视图访问它,并给出一个空条目 这是控制器: public ActionResult Create(int referenceID) { ViewBag.id = referenceID; // ViewBag.type = type; // ViewBag.title = title; ViewBag.userID = new SelectList(db.U
public ActionResult Create(int referenceID)
{
ViewBag.id = referenceID;
// ViewBag.type = type;
// ViewBag.title = title;
ViewBag.userID = new SelectList(db.UserProfiles, "userID", "firstName");
return View();
}
这就是我如何从我的角度访问它
@{ Model.referenceID = ViewBag.id ; }
当我准备/邀请/创建/1
它给了我一个空条目错误。首先,您需要确保为路由表中的/Invitation/Create/{id}在global.asax…中配置了路由路径,即。在你的注册表中,使用global.asax的registerOutes方法…确保你有类似
// Invitation/Create
routes.MapRoute(
"Create Invitation",
"Invitation/Create/{id}",
new { controller = "Invitation", action = "Create", id= 0 }
);
如果Create方法中的referenceID是可选的…您需要将referenceID的类型更改为int吗?(可为null的int)…如下所示
public ActionResult Create(int? referenceID)
{
// if referenceID is null then you may redirect the user to a view of your choice..
// then what ever logic you may wanna write...
}
希望这有助于
更新:
您可以尝试将此地图路线代码移动为您的第一个地图路线代码吗
也许我应该更好地阅读您的问题…在您的创建操作方法中,您没有将任何模型返回到视图中…当您说model.referenceId…时,应该有一个从您的创建操作方法返回的模型(包含referenceId作为属性)…根据您提供的代码,该模型在您的案例中丢失了,我认为您的模型是空的,因为您的操作没有向视图传递任何内容。您是否尝试过在页面上显示ViewBag.id?首先,确切的错误是什么?其次,为什么要在视图中指定模型特性?你的模型有referenceID属性吗?是的,模型有referenceID!!我可以从控制器设置它吗。假设我有两个create方法,一个用于get和post。从我看到的模型==null。您的控制器不返回任何内容。应该是返回视图(someViewModel)是的,路由已配置,引用ID未配置optional@iyadalaqel你能发布你的视图和路由代码吗…我是说整个路由代码。。。?同时查看我的更新…当然,这是默认设置,我没有更改它。还有许多其他方法使用相同的Controller/Action/id格式,它们是working@iyadalaqel也许我应该更好地阅读您的问题…在您的Create action方法中,您没有将任何模型返回到视图…当您说model.referenceId…时,应该有一个模型(包含referenceId作为属性)从创建操作方法返回。。。