0

Ich habe ein modales Bootstrap-Fenster auf einem MVC-Rasierer Seite. Ich versuche, ein Modal mit einem Textfeld, einem Speichern und Abbrechen-Button zu erstellen, und wenn ein Wert gespeichert wird, möchte ich die Seite aktualisieren, nachdem dies geschieht.Holen Wert von Bootstrap modal, speichern, aktualisieren Seite

Die Strategie, die ich versuchte, war es, Javascript zu verwenden, um die benötigten Felder an den MVC-Controller zu senden, und wiederum an die C# -Funktion zu senden, und danach die Seite zu aktualisieren. Ich setze einen Haltepunkt in Google Chrome, und ich weiß, dass ich mindestens die JavaScript-Funktion aufrufen, aber von da an läuft etwas schief.

Auf der Seite des Rasiermessers Ich habe die modale

<div class="col-lg-6"> 
         <div id="AdjustedAmountModal" class="modal fade" role="dialog"> 
          <div class="modal-dialog"> 
           <div class="modal-content"> 
            <div class="modal-header"> 
             <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
             <h4 class="modal-title">New Adusted Liability Amount:</h4> 
             @Html.TextBoxFor(model => model.AdjustedLiabilityAmount) 
            </div> 
            <div class="modal-footer" style="text-align:center"> 
             <div> 
              <button id="saveAdjustedAmount" type="button" class="btn btn-primary view-insp">Save</button> 
              <button id="Button_closeModal" type="button" class="btn btn-default close-modal" data-dismiss="modal">Cancel</button> 
             </div> 
            </div> 
           </div> 
          </div> 
         </div> 
        </div> 

My JavaScript-Funktion (die zumindest genannt wird), ist als

$(document).on("click", "#saveAdjustedAmount", function() { 

$.ajax({ 
    cache: false, 
    type: "POST", 
    dataType: "json", 
    data: { "pDOT": $("#DOTNumber").val(), "pKYU": $("#KYUNumber").val(), "pKIT": $("#KITNumber").val(), "pCarrierName": $("#CarrierName").val(), "pAmount": $("#LiabilityAmount").val(), "pAdjustedLiabilityAmount": $("#AdjustedLiabilityAmount").val() }, 
    url: ResolveUrl('~/JeopardyAssessmentController/SaveValue'), 
    success: function (redirectUrl) { 
     //Simply redirect to refresh the page 
     window.location.href = redirectUrl; 
    } 
}); 

} folgt);

In Chrom-Entwickler-Tool, ich bin ein rotes sehen verschnörkelt unter der Leitung

url: ResolveUrl('~/JeopardyAssessmentController/SaveValue'), 

Uncaught Reference: ResolveUrl nicht

definiert

Ich habe auch eine Pause in Visual Studio in der Controller-Funktion, Ich versuche zu rufen

Dieser wird nicht einmal aufgerufen, und ich fange an, meine gesamte Strategie hier in Frage zu stellen. Tue ich das auch nur annähernd richtig? Ist es möglich zu erreichen, was ich versuche, und wenn ja, wie?

Ich bin ein wenig neu, und jede Hilfe wird sehr geschätzt.

+0

ist ResolveUrl in Ihrer js-Datei oder in einer Ansicht? –

+0

Es ist in der js-Datei. – Chris

Antwort

0

Nicht sicher, ob es verwandt ist, aber das ist JeapordyAssessment und nicht JeopardyAssessment?

+0

Das war ein Schreibfehler, aber nicht die Ursache des Problems. – Chris

+0

So viel dachte ich, würde ich darauf hinweisen. –

0

ResolveUrl ist eine .net-Funktion. Es wird nicht funktionieren innerhalb Ihrer JS-Dateien. Um dies zu umgehen können Sie diese zu Ihrer Ansicht hinzuzufügen:

<script type="text/javascript"> 
     var baseUrl = "<%= ResolveUrl("~/") %>"; 
</script> 

Dann in Ihrem Javascript tun:

function ResolveUrl(url) { 
    if (url.indexOf("~/") === 0) { 
     url = baseUrl + url.substring(2); 
    } 
    return url; 
} 

Ist dies der beste Ansatz? Nein aber es sollte Ihr Problem lösen.

Code von https://weblogs.asp.net/joelvarty/resolveurl-in-javascript geliehen wie ich bin faul.