0

私のプログラムが同じように感じない現時点では、これは簡単な操作であるはずです。ユーザーが私のビューのフィールドに任意の量のテキストを入力すると、虫眼鏡をクリックして、送信したテキストをコントローラーに送信し、コントローラーが Web サービスを呼び出して会社名を実行できるようにする必要があります。探す。

以下は、ASP MVC 3 コントローラーに 2 つのパラメーターを単純に送信する、私が作成した関数です。Chrome デバッガーとコントローラーの Visual Studio の両方で変数を表示すると、2 番目の項目は常に問題なく通過する searchItemことがわかりますnullundefined

function GetCompDetails() {
    var searchItem = $('#DRMCompanyId').val;
    var request = $.ajax({
        type: 'POST',
        url: '@Url.Action("compSearch", "AgentTransmission")',
        data:
            {
                searchFilter: searchItem,
                url: location.protocol + '//' + location.host
            },
        dataType: 'html',
        success: function (data) {
            alert(data);
        },
        error: function (data) {
            alert("Unable to process your resquest at this time.");
        }
    });
}

これが<div>私が使用しているもので、searchItemパラメーターを渡す必要があります。ご覧のとおり、テキスト ボックス/入力領域を作成する 2 つの異なる方法を試しました。ただし、どちらもパラメーターを be として渡すことになりますundefined

どんな助けでも大歓迎です。

    <div class="M-editor-field">
        <img src="@Url.Content("~/Content/Images/magnify.gif")" onclick="GetCompDetails()" />
        @Html.TextBoxFor(model => model.BankName, new { id = "DRMCompanyId" })
        @*@Html.EditorFor(model => model.DRMCompanyId)*@
        @Html.ValidationMessageFor(model => model.DRMCompanyId)
    </div>

これが私のコントローラーからのメソッド署名です。searchFilter現在のところundefined毎回ですが、urlパラメーターは正常に機能します。

    [HttpPost]
    public string compSearch(string searchFilter, string url)
    {
4

1 に答える 1

1

Javascript にエラーがあります。最初の行でパーンテーゼを忘れています

function GetCompDetails() {
    var searchItem = $('#DRMCompanyId').val();    // You need to add parenthesis if you call a function
    var request = $.ajax({
        type: 'POST',
        url: '@Url.Action("compSearch", "AgentTransmission")',
        data:
            {
                searchFilter: searchItem,
                url: location.protocol + '//' + location.host
            },
        dataType: 'html',
        success: function (data) {
            alert(data);
        },
        error: function (data) {
            alert("Unable to process your resquest at this time.");
        }
    });
}
于 2013-04-22T22:26:14.353 に答える