Привет, у меня есть одна страница регистрации и она содержит поля UID, UserName, Password. Я использую dev Express gridview. Когда я нажимаю кнопку «Редактировать», ему нужно передать конкретное значение строки строки контроллеру, но он передает нулевой параметр в контроллер. Теперь, что я хочу, я хочу передать конкретный ключ строки. Параметр для контроллера, нажав кнопку редактирования в виде сетки в mvc dev express gridview, используя SetDataItemTemplateContent.Below. Я отправляю свой код, пожалуйста, любой правильный код и скажите мне, какую ошибку я сделал.Как передать параметр из gridview на контроллер с помощью SetDataItemTemplateContent в mvc4 devExpress, нажав кнопку «Изменить»?
My Model (UserMasterViewModel)
public int UID{get;set;}
public string UserName{get;set;}
public string Password{get;set;}
My Controller Code
Public ActionResult UserMasterEdit(int? id)
{
View_MUsrRegistration userregistrartion = db.MUsrRegistration.Find(id)
UserMasterViewModel usermasterviewmodel = new UserMasterViewModel();
usermasterviewmodel.UserName = userregistrartion.UserName;
usermasterviewmodel.Password = userregistrartion.Password;
return View(usermasterviewmodel)
}
Grid View Code
@Html.DevExpress().GridView(
settings =>
{
settings.Name = "gvEditing";
settings.KeyFieldName = "UID";
settings.CallbackRouteValues = new { Controller = "UserMaster", Action = "UserMasterPartial" };
settings.Width = Unit.Percentage(100);
settings.Columns.Add(column => {
column.Caption = "#";
column.SetDataItemTemplateContent(c =>
{
ViewContext.Writer.Write(
Html.ActionLink("Edit", "UserMasterEdit", new { UID = DataBinder.Eval(c.DataItem, "UID") }) + " " +
Html.ActionLink("Delete", "UserMasterDelete", new { ProductID = DataBinder.Eval(c.DataItem, "UID") },
new { onclick = "return confirm('Do you really want to delete this record?')" })
);
});
column.Settings.AllowDragDrop = DefaultBoolean.False;
column.Settings.AllowSort = DefaultBoolean.False;
column.Width = 70;
});
settings.Columns.Add("UserName");
settings.Columns.Add("Password");
settings.ClientLayout = (s, e) =>
{
if(e.LayoutMode == ClientLayoutMode.Loading) {
if(Session["GridState"] != null)
e.LayoutData = (string)Session["GridState"];
}
else
Session["GridState"] = e.LayoutData;
};
}).Bind(Model).GetHtml()
EDIT Просмотр
@model MSSERP.Models.UserMasterViewModel
@{
Html.EnableClientValidation();
}
@using(Html.BeginForm("UserMaterUpdate", "UserMaster", FormMethod.Post, new { @class = "edit_form" })) {
@Html.HiddenFor(m=>m.UID)
<div class="line">
@Html.Label(UserNmae)
@Html.TextBoxFor(m=>m.UserName)
</div>
<div class="line">
@Html.Label(Password)
@Html.TextBoxFor(m=>m.Password)
</div>
<div class ="line">
<input type="submit" value ="Save"/>
</div>
В этом я нажав кнопку Изменить это проходящее нулевое значение в контроллер. Я пробовал много способов, но не мог передать параметр UID контроллеру. Не знаю, какую ошибку я совершил в этом действии. Я попытался улучшить свой уровень, чтобы объяснить эту проблему. Любой понимает и помогает мне решить эту проблему.
Спасибо ..