Действие в моем контроллере MVC вызывается дважды из моего кода jQuery. После некоторого расследования я обнаружил, что ссылка запускается jQuery, а также из представления MVC.метод действия вызывается дважды в контроллере
$('.treeview-menu li a[name="environments"]').on("click", function() {
debugger;
var genericId = $(this).attr('id');
if (genericId != undefined) {
$.ajax({
type: "GET",
url: "/Configuration/Development",
data: { 'genericId': genericId } ,
datatype: "application/json",
success: function (data) { }
})
}
else {
return;
}
});
[HttpGet]
public ActionResult Development(DashBoardViewModel model, string genericId)
{
ViewBag.EnvironmentType = "Development";
DeploymentConfiguration_DAL _deploymentDal = new DeploymentConfiguration_DAL();
model.Configuration = _deploymentDal.FetchDeploymentConfigurationByEnvironmentID(Convert.ToInt32(Convert.ToInt32(genericId)));
if (model.Configuration != null)
{
return View("Index", model);
}
return View("Index");
}
Просмотр где ссылки заселяется
<li>
<a href="#"><i class="fa fa-circle-o"></i> Deployment Environment</a>
<ul class="treeview-menu">
@foreach (var item in ViewBag.Environments)
{
<li>
<a href="@Url.Action(@item.Name,"Configuration")" id="@item.GenericMasterId" name="environments">
<i class="fa fa-circle-o"></i>
@item.Name
</a>
</li>
}
</ul>
</li>
Проблема, что я обращенную когда приложение запускается и после нажатия на любую из ссылок, которые динамично сгенерированных. Метод действия запускается в первый раз и заполняет мою модель, но вместо того, чтобы отображать ее в моем представлении, снова активируется метод действия, который заполняет null
в модели, из-за чего текстовые поля не привязаны к значениям db.
Пожалуйста, помогите мне в решении этой проблемы. Есть ли способ, которым я могу получить доступ к значению id
для href
в моем действии без использования jQuery?
Можете ли вы показать 'html' для'.treeview-menu li a [name = "environment"] 'element? –
Похоже, у вас есть два элемента 'a [name =" environment "]'. Они в какой-то момент вложены? –
добавил представление, которое я использую –