-5

ボタンを使用して、コントローラーのメソッドに接続しようとしています。このリンクから接続できます:

@Html.ActionLink("Print", "Print", new { id = Model.SalesContractId})

しかし、私はリンクを望んでいません、私は私のダイアログの私のボタンがそれをすることを望みます。私は以下を試しました:

$('#btnDialogPrint').click(function () {
        location.href = '<%= Url.Action("Print", "Print", new { id = Model.SalesContractId}) %>'; 

    });

しかし、それは私を悪い要求を言うページにリダイレクトするだけです。

namespace Contract.Controllers
{

    public class ContractController : Controller
    {

        CompassEntities db = new CompassEntities();

        public ActionResult Print(int id)
        {
            return View(""); // This can be removed and Print code may be added
        }

このメソッドに入ると、その中のコードについて心配する必要はありません。

ここにリンクを貼ってもいいですか?

<input type="button" value="Print" id="btnDialogPrint" />

マイビューEdit.cshtml

@model Contract.Models.tbSalesContract
<!DOCTYPE html>
<html>
<head>
    <title>Edit Contract</title>
</head>
<!-- Script section -->
<script src="@Url.Content("~/Scripts/Views/Contract.js")" type="text/javascript"></script>
<!-- Templates -->
<script id="tmplDebtorList" type="text/x-jquery-tmpl">    
    <div class="DebtorResults">
    <span><div style="width:80px;float:left;">${CustomerAccNo}</div></span><span><a href="#" class="debtorLink" value="${DebtorId}">${CustomerName}</a></span>
    </div>
</script>
<body>
    @using (Html.BeginForm("Edit", "Contract", FormMethod.Post, new { id = "frmMain",name="frmMain" }))
    {
4

4 に答える 4

9

jQuery内のリンクがリンクと一致しませんActionLink。また、使用するときUrl.Actionは単語を指定しないでくださいController、それはあなたのためにそれを入れます。

編集:編集した投稿を見た後、正しいコントローラーを使用していません。

これを試して:

$('#btnDialogPrint').click(function () {
    location.href = '<%= Url.Action("Print", "Contract", new { id = Model.SalesContractId}) %>'; 
});

Edit2:私は問題を知っています!Razor構文とWebフォーム構文を混在させています!これを試して:

$('#btnDialogPrint').click(function () {
    location.href = '@Url.Action("Print", "Contract", new { id = Model.SalesContractId})'; 
});

もう1つの問題は、JavaScriptファイル内でこれを実行しようとしているという事実です。ビューにある必要があるJavaScriptファイルでRazor構文を使用することはできません。

于 2012-05-31T10:08:44.020 に答える
4

ポムシュター; Razorとaspxを混同しました。

@ Url.Action( "Print"、 "Contract"、new {id = Model.SalesContractId})を使用して、リンクを作成します。

$('#btnDialogPrint').click(function () {
        location.href = '@Url.Action("Print", "Contract", new { id = Model.SalesContractId})';

    });

他にどこでこれをしましたか?

また、コントローラーは印刷ではなく契約です

于 2012-05-31T11:04:27.007 に答える
2

あるコードスニペットでRazorを使用し、次のコードスニペットでaspを使用しています。これは意図的なものですか?

単にコントローラーを呼び出したいと仮定します。

まず、コードで次のように変更してみてください。

$('#btnDialogPrint').click(function () {
        location.href = '@Url.Action("Print", "Contract", new { id = Model.SalesContractId})'; 

    });

また

<%=Html.ActionLink("Print", "Contract", new { id = Model.SalesContractId})%>

さもないと:

Ajaxを使用する:

体内:

<input type="button" value="Print" id="btnDialogPrint" onclick="print()"/>

スクリプト内:

<script type="text/javascript">
    function print() {
            $.get('@Url.Action("Print", "Contract", new { id = Model.SalesContractId})');
        }
</script>
于 2012-05-31T10:53:26.623 に答える
0

これは私が探していたものでした、しかしすべてに感謝します。

$('#btnDialogPrint').click(function () {
       window.location = '../Print/' + $('#SalesContractId').val();
    });
于 2012-05-31T12:02:42.030 に答える