在我的应用程序的某一点上,我需要加载一个视图并通过它传递一个特定的模型 - 这不是一个大问题,除了它与现有模型有关。现在,RenderPartial不起作用,因为它只传递模型并且实际上没有击中控制器 - 我需要回到控制器以通过ActionResult传递模型,以便可以返回其内容。
所以我想我会使用jQuery。 #(''')。load('/ controller / action')过去有效,为什么不呢?但我需要通过它传递一个参数。我试过简单地添加......
load('/ controller / action /'+<%= Model.Parameter%>)并没有 - 所以有谁知道如何做到这一点? (或者更好的方法呢?)
答案 0 :(得分:2)
您可以使用MVC Futures / ASP.NET MVC 2方法RenderAction,让您返回控制器。您还可以将部分视图所需的模型作为父视图模型(当前方法)的属性传递。或者将新模型存储在ViewData中,但这不是非常强类型,不推荐使用。
答案 1 :(得分:1)
$ .load('<%= Url.Action(“actionname”,“ctlrname”,new {param = Model.Parameter})%>');将工作。或者,MVC期货有一个RenderAction方法,允许您以内联方式呈现动作。
答案 2 :(得分:0)
如果你使用了你在问题中提出的确切语句,那么它有一个问题,因为你没有将asp标签括在单引号中,所以jquery会将渲染的值解释为变量,而不是文字字符串。
...load('/controller/action/' + '<%= Model.Parameter %>')