var url = 'http://localhost:55026/Home/getData';
var hiddendata = $("<input>").attr("name","snippet").attr('value',"content").attr('type', 'hidden')
var form = $('<form action="' + url + '" method="post" target="_blank" >' + '</form>');
$(form).append(hiddendata);
$('body').append(form);
form.submit();
[HttpPost, ValidateInput(false)]
public ActionResult getData(string snippet)
{
}
从控制器获取值后,我需要更改http://localhost:55026
而不是http://localhost:55026/Home/getData
的网址;
这可能吗?
答案 0 :(得分:1)
您可以在HttpPost操作方法中调用RedirectToAction
方法。
[HttpPost, ValidateInput(false)]
public ActionResult getData(string snippet)
{
//to do : Do something with posted data
return RedirectToAction("Index","Home");
}
这将向浏览器发送302响应,其中位置标头值为/Home/Index
,浏览器将向此位置发出新的GET请求。
假设Home/Index
是您根据路由配置的默认操作。
如果您想在Home/Index
,you may pass it using querystring /TempData
使用查询字符串
return RedirectToAction("Index","Home",new {id=snippet});
现在在你的索引操作中,添加一个名为id的参数,你可以读取那里的值
public ActionResult Index(string id="")
{
//check the value in id param. you may pass to your view as needed
}
使用TempData
TempData["Snippet"] = snippet;
return RedirectToAction("Index","Home");
现在进入索引操作
public ActionResult Index()
{
var id=TempData["Snippet"] as string;
//check the value in id variable. you may pass to your view as needed
}
答案 1 :(得分:1)
你可以试试这个:
Response.Redirect("~/");