在MVC中将表单提交给不同的主机

时间:2012-08-30 09:34:37

标签: asp.net-mvc form-submit hidden-field

我在Razor视图中实现了一个Action Link,如下所示

<input type="hidden" id="format"/>

@Html.ActionLink("Save", "SaveFile", "ExportService", "http", "hrmsapp.mysystem.com", "", new { fileformat = <hidden field value here> }, new { @id = "save" })

我需要将隐藏字段的值传递给参数“fileformat”中的此操作链接。

我找不到任何办法。有很多线程在讨论@using Html.Form和“post”方法。但是,当我有不同的域hrms.mysystem.com时,我不确定如何使用表单发布。为此目的,Html.Form没有重载。

有没有办法在动作链接代码中读取隐藏字段值(不使用表单)?

2 个答案:

答案 0 :(得分:2)

<form action="http://hrmsapp.mysystem.com" method="post">
    <input type="hidden" id="format" name="fileformat" />
    <input type="submit" value="POST to HRMS app" />
</form>

所有@ Html.Form都打印HTML。你不必使用它。您可以使用指向其他服务器的操作对HTML表单进行硬编码,然后发布。

答案 1 :(得分:1)

您可以使用jQuery替换占位符字符串:

<input type="hidden" id="format"/>

@Html.ActionLink("Save", "SaveFile", "ExportService", "http", "hrmsapp.mysystem.com", "", new { fileformat = "xxfileformat" }, new { @id = "save" })

<script>
    $(function() {
        $('#save').attr('href', $('#save').attr('href').replace('xxfileformat', $('#format').val()))
    });
</script>