0

MVC 3 アプリケーションがあります。作成したばかりの結果を表示したい。

コントローラーとビューのコードの一部。

  public ActionResult ViewGenerated(string Number, string ClientID)
    {
        // get a list of inmate id's and pins from batch number
        string url = HttpContext.Request.Url.ToString();
        int client;
        client = int.Parse(ClientID);
        int batch = int.Parse(Number);

        var list = (from a in aContext.aDetail
                    select a).ToList();
        // set this to the object collection
        ViewBag.x = list;
        return View();
    }

次に表示

@foreach (var r in ViewBag.x)
    { 
        <tr>
            <td>@r.ID</td>
            <td>@r.Name</td>
        </tr>

私のJavaScriptコードでは、WCFを呼び出して番号を返し、コントローラーに渡そうとしますか??

function GenerateX() {
    // blah blah
    $.getJSON('/some service', function (response) {
    });
    // What I want is to get the number from the service then redirect the url to the view 
    $(this).dialog('close'); // Close it
}

jquery ダイアログを使用して「GenerateX」を呼び出しました。

私はそれを行う方法がわからない、私はこの分野に強いわけではありません。

どうもありがとう。

更新しました:

 $.getJSON('/Services/InService.svc/blah/GeneratePINs/').success(viewPins);
    // return "Number" here and want to pass it to controller.
    $(this).dialog('close'); // Close it
}

function viewPins(data) {
    var clientId = $("#clientIds").val();
    alert(clientId); // code not reach here
    window.open('/WebAdminOrion/blah/ViewGeneratedPINs?Number=' + data + '?&ClientID=' + clientId);
}
4

3 に答える 3

0

あなたは使用することができますwindow.location.href

元。

window.location.href = '/controllername/actionname';

また

window.location.href = '@Url.Action("actionname")';
于 2012-11-16T14:51:10.610 に答える
0

これを参照してください:

HTML (javascript unobstructive 用):

<!-- Constant or key in the "web.config" having the service route -->
<input type="hidden" id="service-url" value="@ConstUrlService" />
<input type="hidden" id="action-url" value="@Url.Action("action", "controller")" />

サービスの URL を取得する最適な実装については、「WCF REST サービスへの jQuery AJAX 呼び出し」を参照してください。

JS (外部ファイル):

function GenerateX() {

    var dialog = this; 

    // blah blah
    $.getJSON($('#service-url').val(), function (response) {

       /*
       the call to "close" must be here, because the "ajax" is asynchronous 
       */

       /*
       This answer has to be the number, and could have a response status 
       for example Ok (true/false) 
       */

       if (response.Ok && response.Number != 0) {

            $(dialog).dialog('close'); // Close it
            window.location = $('#action-url').val() + '?Number=' + response.Number + '&ClientID=' + response.ClientID; 
       }
       else {

            alert('problem');
       }

    }).fail(function() {

       /* 
       for error
       */ 

       alert('call error');

    });
};
于 2012-11-16T15:41:54.677 に答える
0

私は答えを見つけました。

window.open('/WebAdminOrion/blah/ViewGeneratedPINs?Number=' + data + '&ClientID=' + clientId);

クエスチョンマークは1つです。それを削除してから、再愛用します。

于 2012-11-16T20:36:48.217 に答える