Ниже приведен вызов Ajax, который я делаю для контроллера, когда пользователь нажимает на определенный значок в моем ASP MVC3 View. Предполагается вызвать метод в контроллере по имени PopDetails
, однако после установки контрольной точки в контроллере я вижу, что этого не происходит. Я попытался использовать оба URL, перечисленных ниже, однако ни один из них не работал. Поскольку это первый раз, когда я использовал Ajax, я не совсем уверен, что происходит. Любые идеи или предложения будут очень признательны!Метод контроллера ASP MVC не называется должным образом через Ajax
Ajax код из просмотра:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script type="text/javascript">
function GetProgramDetails(pgmname) {
var request = $.ajax({
type: 'POST',
url: '~/BatchProgramsContoller/PopDetails',
//url: '~/BatchProgramsContoller/PopDetails',
data: { programName: pgmname },
dataType: 'html'
});
request.done(function (data) {
$('#programExplanation').html(data);
});
}
</script>
Метод из BatchProgramsController
:
[HttpPost]
public string PopDetails(string programName)
{
BatchPrograms batchprograms = db.BatchPrograms.Find(programName);
if (batchprograms == null) return string.Empty;
StringBuilder s = new StringBuilder();
s.Append(batchprograms.ProgramName + " - " + batchprograms.ShortDescription);
s.Append("<br />Job Names: " + batchprograms.PrdJobName + ", " + batchprograms.QuaJobName);
s.Append("<br /> " + batchprograms.Description);
return s.ToString();
}
попробуйте сбросить ~ и просто использовать/BatchProgramsContoller/PopDetails –
все еще ничего ... – NealR
можете ли вы поставить точку останова на вызов ajax? он вызван? –