如何在@ Ajax.ActionLink中将@ Html.Hidden中的选定值作为输入参数传递

时间:2017-07-14 19:10:53

标签: asp.net-mvc actionlink

我有@ Html.Hidden:@ Html.Hidden(“Zpy_moisId”,ViewBag.Zpy_moisId作为对象) 如何将参数从@ Html.Hidden传递给actionlink

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您仍在 服务器端 ,则可以使用相同的ViewData。

@Html.Hidden("Zpy_moisId", ViewData["Zpy_moisId"])
@Html.ActionLink("Server-side Link", "About", "Home", new { id = ViewData["Zpy_moisId"] })

<强>输出

<input id="Zpy_moisId" name="Zpy_moisId" type="hidden" value="123">
<a href="/Home/About/123">Server-side Link</a>

如果您想根据其他事件(例如按钮点击)在 客户端 构建链接,则可以使用 的jQuery 即可。

@Html.Hidden("Zpy_moisId", ViewData["Zpy_moisId"])
<a id="sample-link">Client-side link</a>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
    $(function() {
        $("#sample-link").attr("href", "@Url.Action("About", "Home")/" + 
           $("#Zpy_moisId").val());
    })
</script>

<强>输出

<input id="Zpy_moisId" name="Zpy_moisId" type="hidden" value="123">
<a id="sample-link" src="/Home/About/123">Client-side link</a>

<强>控制器

public class HomeController : Controller
{
    [HttpGet]
    public ActionResult Index()
    {
        ViewData["Zpy_moisId"] = "123";
        return View();
    }

    [HttpGet]
    public ActionResult About(int id)
    {
        return View();
    }
}