У меня есть два набора функциональных возможностей на основе JavaScript / Razor, которые почти идентичны, но один работает, как ожидалось, а другой нет.
Фактически, второй (не функционирующий) набор действий контроллера, частичного представления и сценария был скопирован напрямую из первого (работающего) набора.Единственное изменение, которое я сделал, - это удаление ненужного передаваемого идентификатора (OP должен указать где), запуск кода, и он не работал.
Может кто-нибудь указать мне, что я делаю неправильно?
Вариант использования + ожидаемое поведение:
Оба набора предназначены для вызова метода контроллера, который выполняет следующие действия:
- Получение представления частичного результата
- Отобразить это представление частичного результата в указанном (и пустом) div.
Текущее поведение:
Первый (функциональный) набор правильно получает представление и отображает его в указанном div.Второй (нефункциональный) набор получает представление, но затем загружает новую, пустую страницу, содержащую только это представление.
Следующие данные взяты из нефункционального набора
JS Script:
<script type="text/javascript">
$(document).ready(function () {
$('.rollInit').on('click', function (e) {
e.preventDefault();
$.get('@Url.Action("RollInits")', function (result) {
$('#initiativerolls').prepend(result);
});
});
});
</script>
Действие контроллера:
public ActionResult RollInits()
{
RNGCSP rng = new RNGCSP();
var inits = new List<VMInitiatives>();
foreach (var init in db.Initiatives)
{
var newInit = new VMInitiatives()
{
Result = init.CharacterName + ": " + (rng.RollDice(20) + init.InitiativeBonus).ToString()
};
inits.Add(newInit);
}
return PartialView("_InitResult", inits);
}
Частичное представление результатов:
@model IEnumerable<WagersDesigns.ViewModels.VMInitiatives>
<table>
<tbody>
@foreach (var roll in Model)
{
<tr>
<td>
@roll.Result
</td>
</tr>
}
</tbody>
</table>
Сегмент страницы бритвы:
...
<tbody>
<tr>
<td valign="top">
<diV id="resultList">
</diV>
</td>
<td valign="top" align="center">
<button id="clear" onclick="clearcontent('resultList')">Clear Rolls</button>
</td>
<td valign="top">
<div id="initiatives">
@* display list of all character initiatives *@
</div>
</td>
<td valign="top">@Html.ActionLink("Roll Init", "RollInits", new { @class = "rollInit" }) |</td>
<td valign="top">
<div id="initiativerolls">
</div>
</td>
<td valign="top" align="center">
<button id="clear" onclick="clearcontent('initiativerolls')">Clear Initiatives</button>
</td>
</tr>
</tbody>
...