我试图在控制器上执行操作,而不重定向到该操作的关联视图.有关我想要实现的一个很好的例子,请查看music.xbox.com网站.从弹出菜单向选定的播放列表添加歌曲时 - 该页面只显示没有任何重定向或刷新的通知.这怎么可能?
我有以下内容:我有一个_playlistPopupMenu局部视图,呈现播放列表列表如下:
_PlaylistPopupMenu
@model List<OneMusic.Models.GetPlaylists_Result>
@if (Model.Count > 0)
{
<li style="height:2px" class="divider"></li>
foreach (var item in Model)
{
<li style="height:30px">@Html.DisplayFor(p => item.Name)
@Html.ActionLink(item.Name, "AddSong", "Playlist", new { playlistId = @item.PlaylistId, songId = 1 }, "")
</li>
}
}
Run Code Online (Sandbox Code Playgroud)
PlaylistController的AddSong操作如下:
public PartialViewResult AddSong(int? playlistId, int? songId)
{
if (ModelState.IsValid)
{
db.AddSongToPlaylist(playlistId, songId);
db.SaveChanges();
return PartialView("_AddToPlaylist", "");
}
return PartialView("_AddToPlaylist", "");
}
Run Code Online (Sandbox Code Playgroud)
我正在努力放置_AddToPlaylist局部视图,我认为我需要能够显示某种通知(Possiblly使用PNotify添加为Bootstrap).MVC希望始终重定向到../Playlist/AddSong?playlistId=1&songId=1
关于如何完成问题的最后部分的任何想法都会很棒.
我有一个指向moodle网站的iframe.我需要传递我的用户名和密码,以便在加载iframe时,我会自动登录moodle.所以我有这样的事情:
<div id="iframe" style="width:787px; height:700px;">
<iframe id="iframeCon" src ="http://www.somesite.net/moodle/login/index.php"
width="100%" height="100%" frameborder="0">
</iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使用POST方法将我的用户名和密码发送到此URL?
我有一个函数,它在表单提交上做一些自定义工作,通过Ajax发送一些数据,将返回的数据附加到一个新的FormData对象中,现在我需要使用这个FormData以常规方式(不是通过Ajax)提交表单.我知道它可以通过隐藏字段来实现,但是如果我不希望返回的数据对于知道一点点编码的人是可见的呢?
那么是否有可能在没有隐藏字段和Ajax的情况下在jQuery中提交带有自定义FormData的表单?
有没有办法通过类型或操作URL指定表单以不打开响应?换句话说,我想将信息发送到服务器,但不在客户端上做任何事情.我知道我可以使用ajax并忽略响应,但我想避免在可能的情况下将所有j添加到我的代码中.
编辑:我不是故意将自己限制在html表单中.在我看来,服务器端解决方案也是可以接受的
美好的一天!我想下载自动生成的文件qwerty.csv,但它只返回文本"12345"(没有文件).你能帮助我吗?
UI
<script type="text/javascript">
function getCsv() {
var ids = getSelectedRecordIds();
$.post('/payments/form_csv.csv', { ids: ids }, function(data) {});
}
</script>
Run Code Online (Sandbox Code Playgroud)
调节器
def form_csv
csv_string = CSV.generate do |csv|
csv << ["12345"]
end
respond_to do |format|
format.csv {
send_data csv_string, :type => 'text/csv; charset=utf-8; header=present', :disposition => "attachment; filename=qwerty.csv", :filename => "qwerty.csv"
}
end
end
Run Code Online (Sandbox Code Playgroud)
在控制台中
Started POST "/payments/form_csv.csv" for 127.0.0.1 at 2012-06-18 18:18:11 +0400
Processing by PaymentsController#form_csv as CSV
Parameters: {"ids"=>["18\n\t "]}
Rendered text template (0.0ms)
Sent data qwerty.csv (0.4ms) …Run Code Online (Sandbox Code Playgroud) 我只是创建了这个应用程序:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView view = (WebView) findViewById(R.id.webView);
WebSettings faller = view.getSettings();
faller.setJavaScriptEnabled(true);
view.loadUrl("http://catcheat.net/test/test.html");
view.setWebViewClient(new WebViewClient());
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我要做的是以编程方式单击页面上显示的唯一按钮,但是我真的不知道该怎么办。我已经在这里阅读过所有此类帖子,但没有人可以帮助我。
这是HTML页面:
<html>
<body>
<form name="pg_frm" method="post" action="https://www.paygol.com/pay" >
<input type="hidden" name="pg_serviceid" value="333818">
<input type="hidden" name="pg_currency" value="EUR">
<input type="hidden" name="pg_name" value="Donation">
<input type="hidden" name="pg_custom" value="">
<input type="hidden" name="pg_price" value="0.5">
<input type="hidden" name="pg_return_url" value="">
<input type="hidden" name="pg_cancel_url" value="">
<input type="image" name="pg_button" src="https://www.paygol.com/webapps /buttons/en/white.png" border="0" alt="Make payments with PayGol: the easiest way!" …Run Code Online (Sandbox Code Playgroud) 我试图在React Native中实现类似的任何想法,我怎么能这样做
<form action="http://example.com/some-url-end-point" method="POST">
<input type="hidden" name="q" value="a">
</form>
Run Code Online (Sandbox Code Playgroud)
是否有可能在React Native中做类似的事情.我可以在Web应用程序中执行此操作.但在反应本机window.document不存在.所以我不能动态地或以任何方式提交表格.
基本上发生的是我使用POST方法数据将一些数据发送到第三方支付网关.知道如何在React Native中实现这一目标吗?
编辑:
我需要一个在提交Web视图时更改的解决方案,该视图会更改浏览器的位置,并以post方法格式将数据发送到该位置
我在Javascript实现中发现的一个类似的问题就是这个JavaScript发布请求就像表单提交 我需要在本机中实现类似的东西.
我正在做一个书店项目,可以将书籍添加到购物车,用户可以选择许多书籍将它们添加到购物车。当用户单击Add to Cart按钮时,我将所选书籍的 ID 添加到名为 .js 的 JS 数组中cart。当所有选定的书都添加到购物车后,我想<a>用 ajax 调用链接标签,该调用将命中控制器函数的 url 并发送 JScart数组对象发送到控制器函数,然后在控制器函数中,我想返回查看浏览器,我不希望控制器函数将响应返回给 ajax 调用,而是我想将视图返回给浏览器。
这是将所选书籍的 ID 添加到cartJS 数组的 JS 函数:
function addToCart(id)
{
if(! cart.includes(id) ) cart.push(id);
cartLength.html(cart.length);
$('#successCart'+id).html('Book added to cart.');
}
Run Code Online (Sandbox Code Playgroud)
这里是<a>调用ajax函数的标签,函数名是showCart():
<a href="#" onclick="event.preventDefault(); showCart();">
<i class="fa fa-shopping-cart"></i>
<span id="cartLength"></span>
</a>
Run Code Online (Sandbox Code Playgroud)
这是showCart()具有ajax代码的函数:
function showCart()
{
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url:"cart",
method:'post',
data:{cart:cart},
dataType: 'html'
})
.done(function(msg){
}); …Run Code Online (Sandbox Code Playgroud) 我有一个WordPress安装和一些插件安装和激活.但我丢失了原来的插件.zip文件.我想将一些插件安装到一个新的WordPress中.
我不希望迁移/移动/备份恢复当前整个WP安装.我只是想.zip为一些已安装的插件重新创建原始插件文件.我可以访问整个文件树以及数据库.有没有办法做到这一点?
我想知道是否有任何方法可以使用带有 POST 参数的JavaScript导航到新 URL 。
我知道使用 GET 您可以使用以下方法在 URL 上附加一个参数字符串 window.location.replace()
但是有什么方法可以使用 POST 来隐藏参数。还是用jQuery?