gpt4 book ai didi

javascript - 有没有办法在 MVC 4 ActionLink 中调用 JavaScript 作为路由值参数之一?

转载 作者:行者123 更新时间:2023-12-02 18:58:13 24 4
gpt4 key购买 nike

我的页面上有一个下拉列表 (DropDownListFor) 和一个 ActionLink。基本上,我遇到的问题是我试图从下拉列表中捕获所选值并将其作为 ID 传递到我的 ActionLink 中。这是我的代码:

@Html.DropDownListFor(x => x.Capsules, new SelectList(Model.Capsules, "pk", "name", "pk"))
<br />
@Html.ActionLink("Submit", "Create",
new { controller = "Process", id = /*JavaScript here to get the selected ID for the DropDownList above*/ },
new { data_role = "button" })

对于我想要完成的任务,有没有办法将 JavaScript 嵌入到我的 Html.ActionLink 调用中?如果没有办法,或者不推荐,您能否建议另一种解决方案来解决这个问题?提前致谢!

最佳答案

您可以通过使用 javascript 拦截链接来实现此目的 Darin has posted an example的这个。

但是,您似乎正在尝试使用 ActionLink 提交一些值,并且您最好创建一个包含所需所有值的 View 模型,然后使用提交按钮发布所有内容。这允许您发布更多的数据而不仅仅是 ID,防止您依赖 Javascript,并将所有代码保留在服务器端而不是混合和匹配。

从您发布的小代码来看 - 您已经有了一个模型,可能是一些强类型实体,并且它有一个名为 Capsules 的属性。

在 Controller 中,创建保存 View 数据的 View 模型:

public class YourViewModel
{
YourModel YourModel { get; set; }

public int CapsuleId { get; set; }
}

然后你的观点:

@using( @Html.BeginForm( "Create", "Process"  ) )
{
@Html.DropDownListFor(m=> m.CapsuleId, new SelectList(Model.YourModel.Capsules, "pk", "name", "pk"))
<input type="submit">
}

然后你的 Controller 操作来处理这个:

[HttpPost]
public ActionResult Create( YourViewModel model )
{
var id = model.CapsuleId;

// do what you're going to do with the id
return View();
}

关于javascript - 有没有办法在 MVC 4 ActionLink 中调用 JavaScript 作为路由值参数之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15104025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com