Asp MVC ajax动态参数

时间:2011-05-26 16:52:46

标签: ajax asp.net-mvc-2 actionlink

我不知道怎么说这个,但这里什么都没有。

我有一个控制器,它有两个参数:FindingId,TagId

public JsonResult Add(int FindingId, int TagId)

我有一个Ajax ActionLink来调用它:

 <%: Ajax.ActionLink( "Add", "Add", "FindingTag", 
    new { FindingId = Model.FindingId }, 
    new AjaxOptions {  
         HttpMethod = "Post"
         })
  %>

然后我有一个可用标签的下拉列表:

<%: Html.DropDownListFor(m => m, Model.AvailableTags, "Select Option..", new { id = "finding_" + Model.FindingId + "_AvailableTags" } )%>

参数以下列方式填充:

上面你可以看到我在渲染模型时填充了FindingId,因为在这个小节中它总是相同的。对于不同的Findings,此视图将被多次呈现,以便FindingId将根据模型进行更改。

然而,TagId应该来自DropDownList的选定值。

我没有将此特定请求映射到要传递的viewmodel,因此下拉列表未绑定到特定属性。我也为

创建了一条路线
/FindingTag/Add/{FindingId}/{TagId}

所以这里有一些问题已经打开,我真的希望有人可以帮助我,因为这些东西对我来说真的很了解。

1)我发现href被渲染为Add?FindingId = ##我很好奇我是否可以强制渲染为Add / ##

2)是否有更简单的方法可以从下拉列表中获取值以附加到href以创建上述路由?

项目中大部分时间我一直在使用jQuery进行ajax调用,所以我只是从头开始手动构建一个URL,但我真的希望使用MS版本进行练习。这看起来是不合理的吗?如果您有任何建议或见解,请告诉我。

修改

我不确定这是否可以解决这个问题。我发现有人说要使用表单并提交,但如果我将其作为已经强类型的局部视图的子部分,我如何将这些值以我可以使用的形式发送回来完整的模型?如果可能的话,我宁愿将它保留为2个参数而不是复杂的对象。

0 个答案:

没有答案