URL在其他浏览器中无法正确打开asp.net mvc

时间:2018-09-04 12:48:27

标签: c# asp.net-mvc asp.net-mvc-4 entity-framework-6 url-routing

我有一个asp.net mvc应用程序,是我向客户端发送带有URL的短信。消息和URL已正确发送,但是当我单击链接未正确打开时,例如,没有从数据库传递数据,例如,如果您单击以下URL,则没有传递给视图的数据:http://binvoicing.com/InvoiceAddlines/PaymentPreview?originalId=11&total=585.00 < / p>

此处代码:

<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        Redirect / https://example.com
</VirtualHost>
<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/example_front/dist/browser
    <Directory /var/www/html/example_front>
        AllowOverride All
    </Directory>
    Alias /example_api  /var/www/html/example_api/public
    <Directory /var/www/html/example_api>
        AllowOverride All
    </Directory>
   Alias /example_blog /var/www/html/example_blog
   <Directory /var/www/html/example_blog>
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.example.com [OR]
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

SMS发送类似于http://binvoicing.com/InvoiceAddlines/PaymentPreview?originalId=11&total=585.00的网址

这是我的PaymentPreview方法:

  public ActionResult SendSms(string cellnumber, int? id, string rt, string tenant, decimal? total, string userloggedin)
    {
        StreamReader objReader;
        WebClient client = new WebClient();
        int payid = 0;
        int paypalaid = 0;
        string UrL = "";

        string pass = "mypassword";
        //string cell = cellnumber;
        string user = "username";


        var pay = from e in db.PayfastGateways
                  where e.userId == userloggedin
                  select e;

        var paya = pay.ToList();


        foreach (var y in paya)
        {
            payid = y.ID;

        }


        var pal = from e in db.PaypalGateways
                  where e.userId == userloggedin
                  select e;

        var payla = pal.ToList();


        foreach (var y in payla)
        {
            paypalaid = y.ID;

        }


        string url = Url.Action("PaymentPreview", "InvoiceAddlines", new System.Web.Routing.RouteValueDictionary(new { originalId = id, total = total }), "http", Request.Url.Host);

        if (payid == 0 && paypalaid == 0)
        {
            UrL = "";

        }

        else
        {
            UrL = url;
        }
        string mess = " Dear Customer, please click on the following link to view generated invoice, you can also pay your invoice online." + UrL;

        string message = HttpUtility.UrlEncode(mess, System.Text.Encoding.GetEncoding("ISO-8859-1"));

        string baseurl =
          "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0?" +
          "username=" + user + "&" +
          "password=" + pass + "&" +
          "message=" + message + "&" +
          "msisdn=" + cellnumber;

        WebRequest wrGETURL;
        wrGETURL = WebRequest.Create(baseurl);

        HttpUtility.UrlEncode("http://www.vcskicks.com/c#");
        try
        {
            Stream objStream;
            objStream = wrGETURL.GetResponse().GetResponseStream();
            objReader = new StreamReader(objStream);
            objReader.Close();
        }
        catch (Exception ex)
        {
            ex.ToString();
        }

        ViewBag.cellnumber = cellnumber;
        ViewBag.id = id;
        ViewBag.rt = rt;
        ViewBag.tenant = tenant;
        ViewBag.total = total;
        ViewBag.UrL = UrL;


        return View();
    }

希望有人可以提供帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我认为URL的构建方式存在问题。看看是否可行-

更改代码的这一部分

string url = Url.Action("PaymentPreview", "InvoiceAddlines", new System.Web.Routing.RouteValueDictionary(new { originalId = id, total = total }), "http", Request.Url.Host);

收件人

string url = Url.Action("PaymentPreview", "InvoiceAddlines", new { originalId = id, total = total })