入力type = "button"があります
<input type="button" name="DeleteJob" runat="server" value="Löschen" onclick="DeleteJob()" />
およびJavaScriptメソッド:
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
return true;
else
return false;
}
代わりにtrueを返し、アクションDeleteJobにリダイレクトするにはどうすればよいですか?
[HttpGet]
public ActionResult DeleteJob(string selectedObject)
{
return View();
}
リダイレクトするには:
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
window.location.href = "your/url";
else
return false;
}
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
window.location.href = "/{controller}/{action}/{params}";
else
return false;
}
これを投稿するためのyojimbo87の回答にコメントしたいのですが、まだコメントできるほどの評判はありません。この相対パスはルートからのみ機能することが指摘されました。
window.location.href = "/{controller}/{action}/{params}";
@ Url.Contentを使用して絶対パスを提供できることを確認したかっただけです。
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
window.location.href = '@Url.Content("~/{controller}/{action}/{params}")';
else
return false;
}
ボタンの代わりにDeleteJob urlを使用してアンカーを作成した方が良いでしょうか?
<a href="<%=Url.Action("DeleteJob", "YourController", new {selectedObject="someObject"})%>" onclick="return DeleteJob()">Löschen</a>
そして、すでに書いたjavascriptを使用します:
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
return true;
else
return false;
}
したがって、関数がtrueを返す場合、リダイレクトされます。関数がfalseを返す場合-あなたはまだページにとどまります。
@ Url.Actionメソッドを使用します。これは機能し、どのIISサーバーにデプロイするかに関係なく、正しいルートを決定します。
例-window.location.href = "@ Url.Action(" Action "、" Controller ")";
したがって、HomeコントローラーのIndexアクションの場合-window.location.href = "@ Url.Action(" Index "、" Home ")";
ノックアウトを使用してボタンをクリックイベントにバインドしたかったため、これに少し苦労しました。ここに、ビューモデル内からのボタンと関連機能を示します。
<a class="btn btn-secondary showBusy" data-bind="click: back">Back to Dashboard</a>
var vm = function () {
...
self.back = function() {
window.location.href = '@Url.Action("LicenseDashboard", "Application")';
}
}
Ajaxリクエストをサーバーに送信するか、そのURLにwindow.locationを使用できます。
(これはコメントですが、評判が悪いためコメントできません。誰かが役に立つかもしれません)
sth.com/productにいて、sth.com/product/indexにリダイレクトする場合
window.location.href = "index";
sth.com/homeにリダイレクトする場合
window.location.href = "/home";
そして、あなたがsth.com/home/indexにリダイレクトしたい場合
window.location.href = "/home/index";