我想知道是否有可能实现以下目标。
在MVC应用程序中 - 有一个链接查询数据库中的某些值,将这些值设置为会话变量,然后打开一个弹出窗口(这是MVC应用程序中的asp.net webform)
基本上允许我们运行Crystal Reports,链接会在会话变量中设置报告ID,然后可以在asp.net webform中访问。 我的困惑是点击链接然后打开弹出窗口设置会话变量。 是否可以完成任何链接或指针?
编辑: 的Javascript
<script language="javascript" type="text/javascript">
function flagInappropriate(postId) {
var url = "/Home/FlagAsInappropriate/" + postId;
$.post(url, function(data) {
if (data) {
alert("True")
} else {
// callback to show error/permission
}
});
}
控制器
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
[AcceptVerbs("POST")]
public bool FlagAsInappropriate(int id)
{
// check permission
bool allow = true;
// if allow then flag post
if (allow)
{
// flag post
return true;
}
else
{
return false;
}
}
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
}
答案 0 :(得分:2)
可以做到,是的。为了生成报告,我已经实现了类似的功能(主要是因为报告URL对用户是隐藏的,因此可以使用一次性令牌实现一些跟踪和身份验证)。我的解决方案如下:
这很简单。 :)
以下是一些示例代码,用于附加click事件并根据您修正的问题执行AJAX调用:
<a href="#" id="ajaxTest-1" class="flag">Click to test AJAX call</a>
<script type="text/javascript">
$(document).ready(function () {
$(".flag").click(function () {
flagInappropriate($(this).attr("id").split("-")[1]);
});
});
function flagInappropriate(postId) {
var url = "/Home/FlagAsInappropriate/" + postId;
alert(url);
$.post(url, function (data) {
if (data) {
alert(data);
} else {
// callback to show error/permission
}
});
}
</script>