0

この質問は、JSP/サーブレット ベースの Web アプリケーションと ASP.NET MVC ベースの Web アプリケーションにわたるクロス サイト送信に関するものです。以下のように、ASP.NET Web プロジェクトから別の ASP.NET MVC プロジェクトに NameValueCollection オブジェクトを送信できます。

using (var client = new WebClient())
{
client.Credentials = CredentialCache.DefaultNetworkCredentials;
string transId = Guid.NewGuid().ToString(); //In Java we may use UUID class
var data = new NameValueCollection
{
{ "TransId", transId },
{ "Name", "Regi" },
{ "DOB", "10/17/2013" },
{ "ZIPCode", "673010" },
};
var result = client.UploadValues("http://localhost:50976/api/Trans/Trans", data);
string s = Encoding.ASCII.GetString(result); //May be Base64.encodeToString(fileData, Base64.CRLF) in Java?

if (s == "1")
{

Response.Redirect("http://localhost:50976/Product/ProductList?TransId=" + transId + "");
}
}

ASP.NET MVC プロジェクトには、以下のようにこの送信をキャッチする WebAPI があります。

public int Trans(TransViewModel transViewModel)
{

            return 1;
}

以下のような私のViewModel定義

public class TransViewModel
{
        public string TransId { get; set; }
        public string Name { get; set; }
        public DateTime DOB { get; set; }
}

したがって、ASP.NET MVC アプリケーションが呼び出している最初の WebProject を、Java ベースの Web アプリケーションに置き換える必要があります。WebClient の代わりに別の Java クラスを使用して同じ送信を行い、NameValueCollection タイプを同じ ASP.NET MVC アプリケーションに送信するにはどうすればよいですか? この送信は、ViewModel を介して上記のように ASP.NET MVC アプリケーションによって受け入れられる必要があります。

4

2 に答える 2

0

うーん..試したことはありませんが、通常の HTTP GET または POST を使用するだけであれば、使用している Web フレームワークは関係ありません。ASP.NET MVC が必要とするのは、通常の要求だけです (例: http://yourwebsite.com:8081/Main/Index?name=Me&email=me@gmail.com )。Java またはその他の Web フレームワークから送信すると、MVC ルーターはそれらを特定のアクション メソッドにマップできます。私の例では、これはパラメータ名と電子メール (文字列型) を持つメイン コントローラとインデックス アクション (HTTP GET) です。Post についても同様です (アクションに HTTP POST 属性を追加します)。モデルを使用していた場合、問題が発生する可能性があります。この場合、私は常に fiddler を使用して、MVC に送信しているものを正確に確認します。また、標準の MVC モデル バインディングがどのように機能するかを理解する必要があります。Java データ構造を MVC 標準モデル バインダーで処理できない場合は、データ構造を変更するか、カスタム モデル バインダーを実装して、すべての要求データに直接アクセスできます。MVC は非常にプラグ可能なフレームワークであり、これまでに作成された中で最高の Web フレームワークの 1 つだと思います!

于 2013-10-22T02:27:00.540 に答える