通过ajax在mvc控制器上找不到404

时间:2016-05-05 09:58:36

标签: c# ajax asp.net-mvc asp.net-ajax

我在部分视图中找不到404我正在尝试加载我正在使用控制器来决定加载什么

[HttpGet]
public PartialViewResult GetPartialView()
{
  //Add model if any and send it through partialview
  return PartialView("_PartnerDetailsForm.cshtml");
}

enter image description here

这里我的脚本文件是ajax的项目我用来加载partiview但是我收到的错误404在我调试时找不到。

$(document).on('change', '#chkisJointApplication', function () {
        if (this.checked) {
            $.ajax({
                url: '@Url.Action("GetPartialView", "FormsController")',
                type: "Get",
                success: function (data) {
                    $("#partnerForm").html(data);
                }
            });

        }
        else
            $("#partnerForm").html(''); //clearing the innerHTML if checkbox is unchecked
  });

调试控制台窗口 enter image description here

屏幕截图显示Forms Controller。 enter image description here

修改1 这有效,但现在我面临以下问题,如何做到

enter image description here

修改2

这是为了显示局部视图的表单内容。

<div class="row">

 <section class="col col-6">

     <label class="input">

        <i class="icon-prepend fa fa-user"></i>
        <input type="text" name="fname" placeholder="First name">
    </label>
</section>
<section class="col col-6">
    <label class="input">
        <i class="icon-prepend fa fa-user"></i>
        <input type="text" name="lname" placeholder="Last name">
    </label>
</section>
</div>
<div class="row">
 <section class="col col-6">
    <label class="input">
        <i class="icon-prepend fa fa-envelope"></i>
        <input type="email" name="email" placeholder="E-mail">
    </label>
</section>
<section class="col col-6">
    <label class="input">
        <i class="icon-prepend fa fa-phone"></i>
        <input type="tel" name="phone" placeholder="Phone">
    </label>
</section>
</div>

2 个答案:

答案 0 :(得分:2)

你需要修复代码js,例如:

$(document).on('change', '#chkisJointApplication', function () {
        if (this.checked) {
            $.ajax({
                url: '/Forms/GetPartialView',
                type: "Get",
                success: function (data) {
                    $("#partnerForm").html(data);
                }
            });

        }
        else
            $("#partnerForm").html(''); //clearing the innerHTML if checkbox is unchecked
  });

答案 1 :(得分:1)

你不需要写“控制器”这个词......这样做:

url: '@Url.Action("GetPartialView", "Forms")'

修改

如果你在.js文件中有它:

将其放在视图中:

<input type="hidden" id="myUrl" value = "@Url.Action("GetPartialView", "Forms")" />

和js:

url: $("#myUrl").val(),

url: document.getElementById('myUrl').value,