首页 > 解决方案 > .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?}");

        });

标签: c#asp.netasp.net-mvc

解决方案


您是否确定在顶部定义您的视图模型?有时我会忘记这一点。

@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>

推荐阅读