【问题标题】:how to get CURL values inside mvc3?如何在 mvc3 中获取 CURL 值?
【发布时间】:2012-03-22 20:16:55
【问题描述】:

我是 MVC 的新手。我在使用带有 sql server 2005 的 asp.net MVC3 使用以下程序。我使用以下代码它工作正常。我的问题是如何更改此程序,例如如何获取值从 CURL(php) 而不是注册表单值并将该值添加到 sql server 2005 中?

UserManager.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MvcDemo.Models.DB;
using MvcDemo.Models.ViewModels;

namespace MvcDemo.Models
{
    public class UserManager
    {
        private UserView obj = new UserView();

        public void Add(UserView user)
        {
            obj.FirstName = user.FirstName;

            DB.Signup sysUser = new Signup();
            sysUser.FirstName = user.FirstName;
            sysUser.LastName = user.LastName;
            sysUser.Contactnumber = Int32.Parse(user.ContactNumber);
            sysUser.LoginID = user.LoginID;
            sysUser.Password = user.Password;
            obj.AddToSysUsers(sysUser);
                      }

                }
}

AccountController.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using MvcDemo.Models.ViewModels;
using MvcDemo.Models;


namespace MvcDemo.Controllers
{

    public class AccountController : Controller
    {

        public ActionResult SignUp()
        {
            return View("SignUp");
        }




        [HttpPost]
        public ActionResult SignUp(UserView user)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UserManager userManager = new UserManager();

                        userManager.Add(user);
                        FormsAuthentication.SetAuthCookie(user.FirstName, false);
                        return RedirectToAction("Welcome", "Home");

                }
            }
            catch
            {
                return View(user);
            }

            return View(user);
        }
    }
}

Userview.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.ComponentModel.DataAnnotations;



namespace MvcDemo.Models.ViewModels
{

    public class UserView
    {


        [Required]
        [Display(Name = "First Name")]
        public string FirstName { get; set; }

        [Required]
        [Display(Name = "Last Name")]
        public string LastName { get; set; }

        [Required]
        [Display(Name = "Contact Number")]
        public string ContactNumber { get; set; }

        [Required]
        [Display(Name = "Login ID")]
        public string LoginID { get; set; }

        [Required]
        [Display(Name = "Password")]
        public string Password { get; set; }



        public void AddToSysUsers(DB.Signup sysUser)
        {
            try
            {
                string con = System.Configuration.ConfigurationManager.ConnectionStrings["traineeEntities"].ConnectionString;
                SqlConnection co = new SqlConnection(con);
                co.Open();
                String str = "Insert into Signup values('"+sysUser.FirstName+"','"+sysUser.LastName+"',"+sysUser.Contactnumber+",'"+sysUser.LoginID+"','"+sysUser.Password+"')";
                SqlCommand cmd = new SqlCommand(str, co);
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                //Message=Error Creating User: User already exists
            }

        }
    }
}

Signup.cshtml

@model MvcDemo.Models.ViewModels.UserView

@{
    ViewBag.Title = "SignUp";
}

<h2>Sign-Up</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>UserView</legend>


        <div class="editor-label">
            @Html.LabelFor(model => model.FirstName)
        </div>

        <div class="editor-field">
            @Html.EditorFor(model => model.FirstName)
            @Html.ValidationMessageFor(model => model.FirstName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.LastName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.LastName)
            @Html.ValidationMessageFor(model => model.LastName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.ContactNumber)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.ContactNumber)
            @Html.ValidationMessageFor(model => model.ContactNumber)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.LoginID)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.LoginID)
            @Html.ValidationMessageFor(model => model.LoginID)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Password)
        </div>
        <div class="editor-field">
            @Html.PasswordFor(model => model.Password)
            @Html.ValidationMessageFor(model => model.Password)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Return to Home page","Index", "Home")
</div>

【问题讨论】:

    标签: php asp.net asp.net-mvc asp.net-mvc-3 curl


    【解决方案1】:

    我很难理解你真正想要做什么。但是,如果我理解你是正确的,你想通过 PHP 和 cURL 提交注册表单。这就是您使用 cURL 提交 HTTP 帖子的方式:

    <?php
    $data = array(
        'FirstName' => 'The firstname value',
        'LastName ' => 'The lastname value',
        'ContactNumber ' => 'The contactnumber value',
        'LoginID ' => 'The loginid value',
        'Password ' => 'The password value'
    );
    
    $post = http_build_query($data);
    
    $url = 'http://url_to_your_server/Account/SignUp/';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $response = curl_exec($ch);
    
    var_dump($response);
    

    【讨论】:

    • 如何在 Curl 中发布值(参数)以及如何在 mvc 中获取这些值?
    • 使用 sn-p i 发布将值发布到您的 MVC 控制器。在您的SignUp 操作中,您可以使用user.FirstNameuser.LastName 等访问每个参数。
    【解决方案2】:

    不太清楚获取注册表单变量是什么意思,您应该可以很容易地从传递给您的操作的模型中做到这一点。

    如果您的意思是,如何获得模型中不存在的外部值,则需要使用。 Request 属性。

    public ActionResult Register(...) {
        var x = Request.Form["your form value here"] // for forms
        var y = Request.QueryString["your query string value here"] // for query strings
        var z = Request.Headers["for headers"] // for headers
        ... etc ...
    }
    

    如果您能进一步澄清您的问题,您可能会得到一些更好的答案,目前我们还不清楚您的目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多