我有一个申请工作的表格。应该允许用户上传简历,表格还有一个下拉列表,允许用户从以前上传的简历列表中进行选择。现在我的问题是,我需要无需提交表单即可上传新简历,并使用新上传的简历重新填充下拉列表。因此,用户现在可以通过选择下拉列表中列出的简历来申请工作。请帮忙吗?
问问题
99 次
1 回答
0
您需要使用Json来防止页面中的完整回发。之后,您必须返回局部视图。
例如;
HTML 代码:
<input type="text" id="UserName" name="UserName"/>
<input type="button" onclick="ButonClick()" value="Enter"/>
Javascript代码:
function ButonClick() {
var data= {
UserName: $('#UserName').val(),
};
$.ajax({
url: "/Home/MyActionResult",
type: "POST",
dataType: "json",
contentType: 'application/json',
data: JSON.stringify(data)
});
控制器:
public ActionResult MyActionResult(string UserName , MyModel model)
{
var stringView = RenderRazorViewToString("_YourPartialView", model);
return Json(stringView, JsonRequestBehavior.AllowGet);
}
笔记:
您需要以下代码来呈现 json 的部分视图。
也将以下内容添加到您的控制器中。
public string RenderRazorViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
于 2013-09-25T05:39:19.177 回答