仕事に応募するためのフォームがあります。ユーザーが履歴書をアップロードできるようにする必要があります。また、フォームには、ユーザーが以前にアップロードした履歴書のリストから選択できるドロップダウンがあります。私の質問に、フォームを送信せずに新しい履歴書をアップロードし、新しくアップロードされた履歴書をドロップダウンに再入力します。したがって、ユーザーはドロップダウンにリストされている履歴書を選択して、ジョブを適用できるようになりました。
質問する
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 に答える