作为一位刚刚开始使用MVC的相当有经验的ASP.Net开发人员,我发现自己正在努力将自己的思维从传统的“服务器控制和事件处理程序”方式转变为更加dynamic的MVC方式。 我想我正在慢慢到达那里,但是有时MVC“魔术”会把我抛弃。 我目前的scheme是创build一个网页,允许用户浏览本地文件,将其上传到服务器,并重复这一点,直到他有一个文件列表的工作。 当他对文件列表感到满意时(他将在页面上显示一个网格),他将点击一个button来处理这些文件并提取一些将被存储在数据库中的数据。 最后一部分不是那么重要,现在我正忙于build立一个文件列表,并在请求之间保存这个列表。 在传统的方法中,这将非常简单 – 数据将被保留在ViewState中。 但是在MVC中,我需要在控制器和视图之间传递数据,而我并不完全知道这应该如何工作。 我想我更好地发布我的编码这个不完整的尝试来解释这个问题。 为了保留我的文件列表数据,我创build了一个基本上是文件types列表的视图模型,以及一些额外的元数据: public class ImportDataViewModel { public ImportDataViewModel() { Files = new List<ImportDataFile>(); } public List<ImportDataFile> Files { get; set; } … 在视图中,我有一个浏览和上传文件的表单: <form action="AddImportFile" method="post" enctype="multipart/form-data"> <label for="file"> Filename:</label> <input type="file" name="file" id="file" /> <input type="submit" /> </form> 该视图使用视图模型作为其模型: @model MHP.ViewModels.ImportDataViewModel 这会将文件发送到我的操作: public ActionResult AddImportFile(HttpPostedFileBase […]
我有Asp.Net MVC4中的 Web应用程序,我想使用Cookie进行用户login和注销。 所以我的行为如下: login操作 [HttpPost] public ActionResult Login(string username, string pass) { if (ModelState.IsValid) { var newUser = _userRepository.GetUserByNameAndPassword(username, pass); if (newUser != null) { var json = JsonConvert.SerializeObject(newUser); var userCookie = new HttpCookie("user", json); userCookie.Expires.AddDays(365); HttpContext.Response.Cookies.Add(userCookie); return RedirectToActionPermanent("Index"); } } return View("UserLog"); } LogOut操作 public ActionResult UserOut() { if (Request.Cookies["user"] != null) { […]
我想在一些文本框条目上运行JavaScript用户validation。 我遇到的问题是,我的表单有进入我们的网站内的新页面的行动,并且onsubmit属性从不运行javascript函数。 有没有更好的解决scheme,或者与下面的代码一起工作:注意:如果您将操作切换到checkRegistration()那么javascript文件将被正确写入并且有效。 这只是一个问题,同时运行的动作和JavaScript。 <form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post"> <!– textboxes here –> <!– and submit button –> </form>
我有一个表单中的一个jsp。 有两个提交button:“search”和“添加新的”button。 <s:form name="searchForm" action="employeeAction" method="post"> <s:textfield name="id" label="Employee ID"/> <s:textfield name="name" label="Employee Name"/> <s:submit value="Search"/> <s:submit value="Add New"/> </s:form> 在struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <default-action-ref name="index" /> <global-results> <result name="error">/error.jsp</result> </global-results> […]
有时,在使用<h:commandLink> , <h:commandButton>或<f:ajax> ,与标签关联的action , actionListener或listener方法不会被调用。 或者,bean属性不会使用提交的UIInput值进行更新。 这有什么可能的原因和解决办法?