c# – 参数字典包含非可空类型参数“id”的空条目
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 参数字典包含非可空类型参数“id”的空条目,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2533字,纯文字阅读大概需要4分钟。
内容图文
![c# – 参数字典包含非可空类型参数“id”的空条目](/upload/InfoBanner/zyjiaocheng/760/3dc6b742672e4baca680e47c78fdb7d2.jpg)
我正在尝试通过默认路由中的id参数从我的数据库中检索数据:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
在这个ActionResult中,我试图基于route id参数呈现自定义用户控件,以便检索所请求页面的相关数据
public ActionResult InitPageNav(int id)
{
PageModel page = PageNavHelper.GetPageByID(id);
return PartialView("UserControls/_PageNavPartial", page);
}
编辑*
public static MvcHtmlString CreateMenuItems(this HtmlHelper helper, string action, string text)
{
var menuItem = new TagBuilder("li");
var link = new TagBuilder("a");
//Get current action from route data
var currentAction = (string)helper.ViewContext.RouteData.Values["action"];
link.Attributes.Add("href", string.Format("/Home/{0}", action));
if (currentAction == action)
{
menuItem.AddCssClass("selected");
link.Attributes.Remove("href");
link.Attributes.Add("href", string.Format("/Home/{0}", currentAction.ToString()));
}
link.SetInnerText(text);
menuItem.InnerHtml = link.ToString();
return MvcHtmlString.Create(menuItem.ToString());
}
但我一直收到错误:
参数字典包含非可空类型的参数“id”的空条目
谁能发现我哪里出错?
解决方法:
要调用该操作,URL中需要一个整数,如下所示:/ Home / InitPageNav / 1
或者你改变动作方法以允许可以为空的整数(但这没有意义,除非你有一个默认页面,如果没有给出id,你可以检索它).
如果您不想在网址中使用网页ID,则需要其他内容来标识网页,例如标题?
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{title}", // URL with parameters
new { controller = "Home", action = "Index", title = UrlParameter.Optional } // Parameter defaults
);
和行动:
public ActionResult InitPageNav(String title)
{
PageModel page = PageNavHelper.GetPageByTitle(title);
return PartialView("UserControls/_PageNavPartial", page);
}
只需确保处理title参数为空/ null的情况.通常,您应该使用Mvc框架中已存在的帮助器/扩展来构建您的URL.
@Html.ActionLink("Link text", "action", "controller", new { title = "whatever" }, null)
或者在你的高级助手中,
public static MvcHtmlString CreateMenuItems(this UrlHelper url, string action, string text)
{
var menuItem = new TagBuilder("li");
var link = new TagBuilder("a");
//Get current action from route data
var currentAction = (string)helper.RequestContext.RouteData.Values["action"];
link.Attributes.Add("href", url.Action(action, "home", new { title = "whatever" }));
if (currentAction == action)
{
menuItem.AddCssClass("selected");
}
link.SetInnerText(text);
menuItem.InnerHtml = link.ToString();
return MvcHtmlString.Create(menuItem.ToString());
}
内容总结
以上是互联网集市为您收集整理的c# – 参数字典包含非可空类型参数“id”的空条目全部内容,希望文章能够帮你解决c# – 参数字典包含非可空类型参数“id”的空条目所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。