1

我将一些模型信息传递给 ActionLink,但我还想为操作提供页面上某些输入的值。例如,如果我有这样的事情:

<input Name="MyInput" />

<%: Html.ActionLink("MyAction", "MyController", Model.Value);

我希望该操作同时了解 Model.Value(通过参数传入)和 MyInput 的值。通常我会使用 FormCollection,但在这种情况下我不能,因为我没有提交。

那么如何将 MyInput 的值传递给 MyAction?我是否必须在我的模型中添加一个名为 MyInput 的属性?假设这可行,有没有更简单的方法,或者至少有一种不涉及修改模型的方法?

4

2 回答 2

3

在 HTML 中没有办法做到这一点,因此在 ASP.NET MVC 中没有办法做到这一点。

您可以选择两种可能的解决方案:

  1. 使用 JavaScript,这样当用户编辑文本框时,您可以动态更改锚标记的值以包含他们输入的内容。您不能为此使用 ASP.NET 路由,因为它在服务器上运行并且您需要客户端代码。

  2. 提交表单而不是链接。这是 HTML 中推荐的方式。当用户提交数据时,它应该是一个表单。将所有内容包装在一个表单标签中,并将文本框和一个按钮放在那里。将表单的操作设置为您希望它发布到的 URL。

这与我在这个问题中的回答相同,尽管另一个问题的提问者可能有一个稍微不同的想法。

于 2010-01-09T07:20:38.683 回答
1

我确定我可能已经通过 Javascript 读取了文本框的值(我可能会使用 JQuery),并将它们作为参数作为匿名类型的一部分传递(而不仅仅是使用 Model.Value)。但是,我决定从使用操作链接切换到只提交表单并使用 FormCollection。我正在构建的页面更有意义。

于 2010-01-09T07:08:14.683 回答