我知道我今天有很多问题,但仍然试图控制一切,学习MVC 2正确的方式。在我提出这个问题之前,我已经尝试了提供的解决方案here但是我收到了500个内部服务器错误。
所以这就是我要做的事情,我让用户能够从技能列表中选择(在ListView用户控件中加载)或者在列表中添加一个新的并选择它。添加新的完成(使用WCF服务和jQuery)但现在我正在尝试重新加载技能用户控件。
根据我链接的解决方案,我向我的AccountController添加了一个动作
public ActionResult GetSkillControl()
{
return View("~/Views/Shared/SkillsListView.ascx");
}
我有一个跨度内的控件(所以它有一个容器)
<tr>
<td style="vertical-align:top;"><label for="SkillsListView" title="Skills">Skills:</label></td>
<td class="regElements"><span id="SkillListViewContainer"> <% Html.RenderPartial("SkillsListView"); %></span><%= Html.ValidationMessageFor(m => m.Skills, "*")%><br />
<span id="AddSkillError"></span>
Add: <input type="text" id="NewSkill" class="inputbox" style="width:75px;" /> <input type="button" value="Add" id="AddSkill" name="AddSkill" /></td>
<td></td>
</tr>
在我的jQuery ajax调用中我有
success: function () {
$('#SkillListViewContainer').load('../AccountController/GetSkillControl');
}
当它达到这一点时,Chrome中的JavaScript控制台显示它返回500内部服务器错误。我在这里缺少什么?
答案 0 :(得分:4)
根据ASP.NET MVC中的标准路由,尝试“/ Account / GetSkillControl”。您在jQuery的加载方法中使用的任何内容都必须是有效的URL。路由引擎正在查找或是Account而不是AccountController。此外,通过使用前导“/”,它将从站点的根目录解析。