0
僅使用@model Project.Models.UserModel
時,我可以使用TextBoxFor
就好了。但是,如果將其更改爲@model PagedList.IPagedList<Project.Models.UserModel>
,則無法再使用TextBoxFor
。使用PagedList.MVC時無法使用強類型視圖
Create.cshtml - 我不能使用TextBoxFor
而不會出現錯誤。
@model PagedList.IPagedList<Project.Models.UserModel>
...
//I'm having a problem with this code
@Html.TextBoxFor(model => model.userid)
...
「IPagedList」不包含對「用戶」和沒有擴展方法「用戶」接受類型「IPagedList」的第一個參數的定義可以找到(是否缺少使用指令或程序集?參考)
UserController.cs - 我返回PagedList
public ActionResult Create(string currentFilter, string searchString, int? page)
{
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var users = from ug in _odb.USR_MSTR
select new UserModel
{
userid = ug.USR_ID,
user = ug.USR_DESC,
status = (ug.INACTV_DT == null ? "Active" : "Inactive")
};
int pageSize = 10;
int pageNumber = (page ?? 1);
ViewBag.UserFilter = GetSelectListItems();
return View(users.ToPagedList(pageNumber, pageSize));
}
public JsonResult Save_User(UserModel model)
{
string _message = string.Empty;
using (var _odb = new ProjectEntities())
{
try
{
USR_MSTR usr_master = new USR_MSTR();
usr_master.USER_ID = Guid.NewGuid().ToString().Remove(20);
usr_master.USER_DESC = model.user;
usr_master.CREATE_DT = DateTime.Now;
_odb.USR_MSTR.Add(usr_master);
_odb.SaveChanges();
}
catch (Exception ex)
{
_message = "An error occured.";
_message = ex.InnerException.Message;
}
}
return Json(true);
}
UserModel.cs - 我所有的文本框,在這裏被定義
public class UserModel
{
public string userId { get; set; }
[Display(Name = "User")]
public string user { get; set; }
[Display(Name = "Status")]
public string status { get; set; }
[Display(Name = "Filter Search By")]
public int filterSearchBy { get; set; }
public int filterSearchText { get; set; }
}
嗨Shyju,謝謝你的回覆!它確實幫助我瞭解ViewModel的真正用途。我還在我的問題中添加了'Controller'類中的'Model'類和'JsonResult'方法。這是因爲我對你的'CreateAndListVm' ViewModel很困惑。它有userId。不應該在'Model'中使用userId?因爲我已經在我的'Model'中獲得了一個 –
您可以用創建新用戶所需的任何屬性值替換userId。 – Shyju
只是想澄清一下:所以'TextBoxFor'文本框使用'CreateAndListVM'中定義的變量?像UserId等。然後通過訪問'CreateAndListVM'中設置的'IPagedList Users'來顯示記錄。 –