0

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

4

1 に答える 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 に答える