我想在锚链接标记内的局部视图中获取文本框的值,以便每次单击链接时我都可以从锚链接标记将值传递给控制器。我该如何执行此操作。请给出一些建议..谢谢......
ViewUser.cshtml
@model IEnumerable<Search_Paging.Models.tbl_product>
<html>
<head>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.linkAction').click(function (e) {
$('.linkAction').attr('href', '@Url.Action("UsersList", "Home", new { str = "---" })'.replace("---", $('.txtString').val()));
});
e.preventDefault();
});
</script>
</head>
<body>
@Html.TextBox("Strings", null, new { @class = "txtString" })
<input type="button" value="filter" id="Button1" />
<div class="pagination">
@for (int p = 1; p <= ViewBag.Total; p++)
{
<a href="@Url.Action("UsersList", "Home", new { str = "---" })" class="linkAction">@p</a>
}
</div>
</body>
</html>
getUsersList.cshtml(部分视图)
<h2>@ViewBag.strings</h2>
HomeController.cs
[HttpGet]
public ActionResult ViewUser()
{
ViewBag.Total = 15;
return View();
}
[HttpGet]
public ActionResult UsersList(string str)
{
ViewBag.strings = str;
return PartialView("UsersList");
}
答案 0 :(得分:0)
如果您使用链接来调用该操作,则会产生HttpGet
ViewUser使用HttpPost进行修饰。您需要删除该属性。
答案 1 :(得分:0)
如果你只想重定向,你也可以只做一个window.location,而不是设置链接的来源。将源的href更改为“#”和您的点击事件
$('.linkAction').click(function () {
alert("link clicked");
window.location = '@Url.Action("getUsersList", "Home", new { page = "----" })'.replace("----", $('.txtString').val());
});
编辑:
我认为你需要将p放在引号中,否则它会认为它是一个变量。如果你想要p传递那应该工作正常。查看您的代码虽然看起来您希望将特定于该链接的p与其一起传递。为此,我建议将p作为id作为链接。然后在您的脚本中,您应该能够执行类似
的操作$(this).id;
要获取p的值,您需要将其放在替换中以使其包含在链接中。如果您有任何疑问,请告诉我。我还建议你不要用p作为替换值。如果链接中有任何p,则它们将被值替换。所以要使用独特的东西。