c# - .NET 模型项目显示在输入框中,但不在链接中
问题描述
我有一个想像这样生成的 URL:
@Html.HiddenFor(m=>m.Id)
@Html.TextBoxFor(x=>x.Id)
@{ var cancel = Url.Action("Index", "KeySetting", new { area = "Document"})+"&Id="+@Model.Id; }
但是,当我加载页面时,我TextBox
的不是空的,而是我的值url.action
丢失了Model.Id
。
我也试过这个:
@Html.ActionLink("Cancel", "Index", "KeySetting", new { area = "Document", Id = @Model.Id }, new { @class = "btn btn-outline-secondary" })
但我的Id
也没有出现。为什么?
编辑:路线设置
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
解决方案
您是否确定在顶部定义您的视图模型?有时我会忘记这一点。
@model YourViewModelName
另外,如果您希望将 id 作为路由值,可以试试这个:
@Html.ActionLink(
linkText: "Edit",
actionName: "Index",
controllerName: "KeySetting",
routeValues: new { area = "Document", id = @Model.Id },
htmlAttributes: new { @class = "btn btn-outline-secondary" })
如果您想要一个查询字符串参数,例如 ?queryparam=yourmodelid
尝试这样的事情:
<a href="@Url.Action("Index", "KeySetting", new { Area = "Document" })?id=@Model.Id" class="btn btn-outline-secondary">Edit</a>
推荐阅读
- docker - nvidia-docker : 未知的运行时指定 nvidia
- html - 相对定位元素显示在我的固定导航栏上
- django - Django创建模型实例 - 创建前验证?在经理班?经理班有什么用?
- neural-network - 为什么扭曲图像会改善神经网络的训练?
- git - Git 说文件已被删除但不允许拉取
- javascript - reactjs没有在浏览器中重新渲染
- android - Kotlin 中的导航栏标题为空
- ruby-on-rails - Rails active_model_serializers 上的多态嵌套关联
- c# - 哪个是监视多个 Windows 服务的最佳方法 - 计时器或线程
- javascript - 动态标题导航