Как получить доступ к модели в jquery - PullRequest
0 голосов
/ 21 июня 2010

Вопрос здесь очень прост

Это мой взгляд

<%@ Control Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<GetmoreRevamp.BAL.Product>" %>
<link href="<%=Url.Content("~/Content/AddToCart.css")%>" rel="stylesheet"
      type="text/css" />
<link href="<%=Url.Content("~/Scripts/jquery-1.4.1.js")%>" type="text/javascript" />

<script type="text/javascript">
    function submitForm(formData) {
        var tdata = $(formData).serialize();
        $.ajax({
            type: "POST",
            url: '<%= Url.Action("AddToCart","Cart")%>',
            data: tdata,
            contentType: 'application/json; charset=utf-8',
            datatype: "json",
            success: function(result) { success(result); }
        });
        return false;
    }
    function success(result) {
        alert("success:" + result.success);
    }  
</script>

<% using (Html.BeginForm("AddToCart", "Cart ", Model, FormMethod.Post,
             new { onsubmit = "return submitForm('this');" })) {%>
<div class="prishosbtn">
    <a rel="prettyPhoto" href="" id="buy">
        <%Response.Write("<input type=\"image\" class=\"imgClass\" alt=\"" +
                         (Model != null && Model.ProductName != null ?
                                       Model.ProductName : "KOEB") + "\" src=\"" +
                        Url.Content("~/pics/undersider/listevisning/kob-knap.png") +
                          "\" id=\"ImageButton\" name=\"ImageButton\" />");%>
    </a>
</div>
<%}%>

Это мой контроллер

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using GetmoreRevamp.WEB.Models;
using GetmoreRevamp.WEB.Models.BLLModels;
using System.Web.Security;
using System.Security.Principal;
using GetmoreRevamp.WEB.Utilities;
using GetmoreRevamp.BAL;

namespace GetmoreRevamp.WEB.Controllers
{
    public class CartController : Controller
    {
        //
        // GET: /Cart/
        public ActionResult Index()
        {
            return View("Cart");
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult AddToCart(Product product)
        {
            JsonResult result = new JsonResult();
            OrderHeader orderHeader = 
                Session[Constants.CurrentlySessionOrderHeader] as OrderHeader;
            if (orderHeader == null)
            {
                orderHeader = new OrderHeader();
            }
            if (product != null && product.ProductGuid != null &&
                string.Equals(product.ProductGuid, string.Empty))
            {
                orderHeader.AddOrderLineItem(1, product);
                orderHeader.Calculate();
                Session[Constants.CurrentlySessionOrderHeader] = orderHeader;
                //Default redirection Must be changed when actual view is created
                result.Data = true;
            }
            else
            {
                //Default redirection Must be changed when actual view is created
                result.Data = false;
            }
            return result;
        }
    }
}

«Продукт» определен в бал. Продукт содержит другие хозяйствующие субъекты. Я просто хочу получить доступ к модели, с которой представление связано в jquery, а затем опубликовать ее в моем методе действия в контроллере корзины. Я не хочу размещать идентификатор продукта. Я хочу опубликовать фактическую модель с помощью jquery для моего метода действия. Я абсолютный новичок в этом. поэтому любая помощь и самое простое решение будет предпочтительнее

1 Ответ

0 голосов
/ 21 июня 2010

MVC сопоставляет имена полей с бизнес-объектом в методе действия, поэтому, если Product имеет поле ProductID, должно быть объявление:

Html.TextBox("ProductID")

или использование метода TextBoxFor в MVC 2. IЯ уверен, что это все еще работает, даже при публикации с использованием JQuery.Связыватель модели обрабатывает процесс получения полей формы и передачи их объекту продукта.Но все поля должны быть в форме, которую вы публикуете на сервере, или вы должны явно передавать параметры, где вы передаете переменную tdata ...

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...