Как получить значения CURL внутри MVC3? - PullRequest
1 голос
/ 22 марта 2012

Я новичок в MVC. Я использую следующую программу, используя asp.net MVC3 с SQL Server 2005. Я использую следующий код, он работал правильно. И мой вопрос, как изменить эту программу, например, как получить значения из 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>

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Не совсем точно понимая, что вы имеете в виду, получая переменные формы регистрации, вы легко сможете сделать это из модели, которую вы передали в свое действие.внешние значения, которые не существуют в модели, вам необходимо использовать.Свойство 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 ...
}

Если вы сможете уточнить свой вопрос, у вас могут быть более точные ответы, поскольку на данный момент у нас нет ясности относительно ваших целей.

0 голосов
/ 22 марта 2012

Мне трудно понять, что вы на самом деле хотите сделать. Однако, если я вас правильно понял, вы хотите отправить форму регистрации через PHP и cURL. Вот как вы можете отправить сообщение HTTP, используя cURL:

<?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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...