#javascript #asp.net #client #client-side #serverside-javascript
#javascript #asp.net #клиент #на стороне клиента #серверная часть-javascript
Вопрос:
кто-нибудь может мне помочь в вызове моего VB.NET метод в моей функции javascript? мой метод не является общим / статическим и ничего не возвращает. Он просто сохраняет данные в базе данных и перенаправляет пользователя. Пожалуйста, помогите мне, вот мой код:
Метод VB
Public Function SaveVehicles()
Dim res As Boolean
If res = True Then
Dim sModel As String = cboModel.SelectedValue
Dim sVariant As String = cboVariant.SelectedValue
Dim sColor As String = cboColor.SelectedValue
cboModel.SelectedValue = sModel
cboVariant.SelectedValue = sVariant
cboColor.SelectedValue = sColor
Dim oData As New WebServVehSwapping
Dim strSql As String
Dim sDealer As String
Dim sUserName As String
'sDealer = "TBP01"
sDealer = Trim(Request.QueryString("dealercode"))
If sDealer = "" Then sDealer = "TBP01"
sUserName = "User1"
'------------------------------------------
strSql = oData.InsertTblRequirement( _
sDealer _
, Now.ToString _
, sUserName _
, cboColor.Text.Trim _
, cboModel.Text.Trim _
, cboVariant.Text.Trim, "Open")
MsgBox("OKAY")
Response.Redirect("MyRequirements.aspx?DealerCode=" amp; sDealer)
Else
'do Nothing
End If
End Function
и вот моя функция Javascript
function ConfirmView()
{
var Ok = confirm('There is/are existing vehicle(s) in Network Vehiches for sale, View Vehicle(s)?');
if(Ok==true)
{
location.href = 'NetworkVehiclesforSale.aspx';
return false;
}
else if (Ok!=true)
{
//THE VB METHOD GOES HERE
}
}
Я пробовал обработчик обратного вызова, и он просто работает с функцией, которая возвращает что-то / строку
и я пробовал Pagemethod, но он работает только со статической / совместно используемой функцией. пожалуйста, помогите мне, мне это действительно очень нужно. Пожалуйста. Спасибо
Комментарии:
1. Если мой ответ вам помог, я был бы признателен, если бы вы отметили его как ответ или задали дополнительный вопрос.
Ответ №1:
Веб-службы .Net не могут творить чудеса, т. Е. вы не можете выдать перенаправляющий ответ на Ajax-запрос на сервере и ожидать, что будет перенаправлена вся страница. Единственное, что произойдет, это то, что вызов Ajax будет перенаправлен на другую страницу и попытается получить данные оттуда. Если вы хотите изменить страницу в клиентском браузере, вы должны сделать это на стороне клиента с помощью JavaScript, например document.location = url_returned_by_your_function_through_ajax_call
.
Комментарии:
1. как насчет того, как я могу вызвать метод SaveVehicles()?
Ответ №2:
Возможно, вы захотите прочитать «Введение в создание служб Windows Communication Foundation Services» — http://msdn.microsoft.com/en-us/library/aa480190.aspx
И особенно: «Руководство по проектированию и созданию веб-служб RESTful с WCF 3.5» — http://msdn.microsoft.com/en-us/library/dd203052.aspx
И ознакомьтесь с некоторыми библиотеками javascript, которые упрощают вызов веб-служб RESTful, такими как jQuery — http://www.jquery.com /
С помощью jQuery вы могли бы выполнить вызов на стороне вашего сервера VB.NET код, подобный этому:
$.ajax({
type: "GET",
contentType: 'text/json',
dataType: 'json',
url: "https://URL-TO-SERVICE-HERE/...",
timeout: 10000,
error: function () {
// Deal with the error
},
success: function (data) {
// Do something with the result
// Example:
if (data.dealerCode)
location.href = 'MyRequirements.aspx?DealerCode=' data.dealerCode;
}
});
Комментарии:
1. и в какой части этого кода я могу вызвать метод SaveVehicles()?
2. Вы бы поместили этот фрагмент javascript, где вы написали «//МЕТОД VB ИДЕТ СЮДА» в вашем вопросе. Вы бы изменили «URL-TO-SERVICE-HERE» во фрагменте, чтобы он указывал на ваш файл .svc (служба WCF), который будет запускать ваш метод «SaveVehicles()».