从 asp.net mvc 站点中的外部站点获取 post 响应
Get post response from external site in asp.net mvc site
也许我问了一个简单的问题,但我知道了:)
我有一个站点(称为 SenderSite)和 post 接收站点(称为 ReceiverSite)。他们托管的是互联网上的不同主机服务器。 SenderSite写在asp.net,ReceiverSite写在asp.netmvc.
我在浏览器中打开 SenderSite。我有包含数据和文本框的表单,我可以在其中编写 url 接受响应的站点(例如,www.example.com/TestMethod)。当我单击发送时,请求将发送到接收方站点。 mvc 方法应该如何接收 post 数据。
我这样写:
[HttpPost]
public void TestMethod()
{
}
我应该为这个方法写一些参数吗?什么时候拍,可以写在纸上吗?
谢谢!
您可以创建一个对象,即 SentModel
,然后确保来自发送站点的名称字段与对象中的属性匹配。
举个例子:
public class SentModel
{
public string Input1 { get; set; }
public string Intput2 { get; set; }
}
[HttpPost]
public void TestMethod(SendModel model)
{
model.Input1.ToString();
}
然后在你的aspx页面中:
<form method="post" action="http://www.example.com/Controller/TestMethod" id="form1">
<div>
<asp:textbox runat="server" id="Input1" ClientIDMode="Static" />
<asp:textbox runat="server" id="Intput2" ClientIDMode="Static" />
<input type="submit" value="submit" />
</div>
</form>
由于您无法轻松地将名称 属性 设置为 ID,因此您还需要使用一些 jQuery 来重命名字段作为解决方法:
$.each($('div').children(), function() {
$(this).attr("name",$(this).attr("id"));
});
以上具有强类型对象的优势,您可以从中提取属性。您还可以向对象添加数据注释以控制对操作的验证。
另一种选择是在控制器操作中包含表单名称参数:
[HttpPost]
public void TestMethod(string Input1, string Input2)
{
Input1.ToString();
}
如果 属性 是 added/removed,那么您的方法需要更改。
最后一个选项只是将其从请求中提取为 Request.Form["Input1"]
。
也许我问了一个简单的问题,但我知道了:)
我有一个站点(称为 SenderSite)和 post 接收站点(称为 ReceiverSite)。他们托管的是互联网上的不同主机服务器。 SenderSite写在asp.net,ReceiverSite写在asp.netmvc.
我在浏览器中打开 SenderSite。我有包含数据和文本框的表单,我可以在其中编写 url 接受响应的站点(例如,www.example.com/TestMethod)。当我单击发送时,请求将发送到接收方站点。 mvc 方法应该如何接收 post 数据。
我这样写:
[HttpPost]
public void TestMethod()
{
}
我应该为这个方法写一些参数吗?什么时候拍,可以写在纸上吗?
谢谢!
您可以创建一个对象,即 SentModel
,然后确保来自发送站点的名称字段与对象中的属性匹配。
举个例子:
public class SentModel
{
public string Input1 { get; set; }
public string Intput2 { get; set; }
}
[HttpPost]
public void TestMethod(SendModel model)
{
model.Input1.ToString();
}
然后在你的aspx页面中:
<form method="post" action="http://www.example.com/Controller/TestMethod" id="form1">
<div>
<asp:textbox runat="server" id="Input1" ClientIDMode="Static" />
<asp:textbox runat="server" id="Intput2" ClientIDMode="Static" />
<input type="submit" value="submit" />
</div>
</form>
由于您无法轻松地将名称 属性 设置为 ID,因此您还需要使用一些 jQuery 来重命名字段作为解决方法:
$.each($('div').children(), function() {
$(this).attr("name",$(this).attr("id"));
});
以上具有强类型对象的优势,您可以从中提取属性。您还可以向对象添加数据注释以控制对操作的验证。
另一种选择是在控制器操作中包含表单名称参数:
[HttpPost]
public void TestMethod(string Input1, string Input2)
{
Input1.ToString();
}
如果 属性 是 added/removed,那么您的方法需要更改。
最后一个选项只是将其从请求中提取为 Request.Form["Input1"]
。