在我看来,我有10个链接每个链接与一些独特的价值相关联。现在,我希望在我的控制器操作中使用该关联值,并且从该操作我希望将流重定向到基于该值的其他操作。
但条件是我不想在网址上显示它。
我怎样才能实现这个目标?
ajax.post/@Ajax.ActionLink
,但这样做不会有助于重定向到另一个动作。
查看
<ul>@foreach (var item in Model)
{<li>
@Ajax.ActionLink(item.pk_name, "Index","Candidate", new { para1= item.para1 }
, new AjaxOptions { HttpMethod = "POST" })</li>
}</ul>
的操作
[HttPost]
public ActionResult(int para1)
{
return RedirectToAction(para1,"anotherController");
}
我正在使用ajax post(这是我主要需要的)获得para1值,但是这里也希望将我的应用程序流程重定向到para1值,即action name。
Confision :我不确定这是做这件事的正确方法。所以我问你们,我应该选择使用ajax帖子的路线图来解决我的目标。
答案 0 :(得分:1)
我认为你应该制作一个jQuery函数,点击时调用它并传递唯一参数。在该函数中你可以使用AJAX并在适当的控制器方法上发布它。
示例:
<input type="button" id="@item.pk_name" onclick="getbuttonvalue(@item.para1);" />
在剧本中
<script type="text/javascript">
$(document).ready(function () {
function getbuttonvalue(para1) {
$.ajax({
cache: false,
type: "POST",
dataType: 'json',
url: "/controller/method/" + para1,
success: function (data) {
}
});
}
});
</script>
答案 1 :(得分:1)
如果你只需要根据他点击的内容重定向用户而不向他显示链接,我相信实现这一目标的最佳方法是通过客户端编码。
在我看来,没有必要通过服务器接受任何请求,以便为这种低复杂度的重定向更改页面。
查看强>
// HTML
// Might be broken, been awhile since I worked with MVC
// Can't really remember if that's how you put variables in HTML
<ul id="button-list">
@foreach(var item in Model)
{
<li class="buttonish" data-para1="@item.para1">@item.pk_name</li>
}
</ul>
// JS
// I wouldn't do any server related work
$('#button-list li.buttonish').click(function(){
// Your controller and action just seem to redirect to another controller and send in the parameter
window.location.href = "/controller/method/" + $(this).data('para1');
});