MVC3 C # 4.0 / Передача переменных между представлениями - PullRequest
0 голосов
/ 25 сентября 2011

новичок в C # и MVC.Чего я хотел бы добиться - это передать переменную ViewData из одного представления в другое представление без использования идентификатора в ActionResult, поскольку это представление генерирует свою собственную переменную.Я уверен, что есть лучшие способы сделать это, но вот то, что я думал, может сработать.Сначала я сделал модель:

public class EventToShow
    {
        public Int64? ID { get; set; }

        public Int64? EventID { get; set; }
    }

Затем я передал переменную EventID из первого представления (Telerik MVC GRID), используя следующее:

 columns.Template(item => Html.Raw(string.Format("<a href=\"{0}\">{1}</a>", Url.Action("tableread", "Home", new { id = (long)item.Event_ID }), "EventID"))).Width(20);

Это работало, используя следующее в моемконтроллер:

 [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult tableread1(long? id)
        {
            ViewData["EID"] = id;
            EventToShow ctx = new EventToShow();
            ctx.ID = 1;
            ctx.EventID = (long)ViewData["EID"];

            return RedirectToAction("EditServerSide");
        }

Чтобы передать переменную в другое представление, я попытался использовать следующее (я думаю, что это очень неправильно):

     public ActionResult EditServerSide()
        {

             EventToShow ctx = new EventToShow();
            var model1 = ctx.(x => x.ID == 1); **// The error here is (Identifier** expected)
            ViewData["EID"] = ctx.EventID;

            var model = from o in new Main().OffLinePayments
                        select new EditOffLinePayment
                        {
                            ID = o.ID,
                            Amount = o.Amount,
                            Details = o.Details 
                        };

  return View(model, ViewData["EID"]) **(this must be wrong)**
        }

Я подумал, может быть, я должен сделатьпеременная, подобная этой:

private string GetFullName()
        {
            EventToShow ctx = new EventToShow();
            var name = EventToShow().Where(x => x.ID == 1);
            ViewData["EID"] = ctx.EventID;
            return name;
        }

Сначала я получил ошибку: 'GridEdit_OfflinePayment.Models.EventToShow' является 'типом', но используется как 'переменная'

Я также не знал , как включить возвращенное [имя] в действие EditServerSide.

Мой вопрос, есть ли лучший способ достичь того, что я пытаюсь сделать, и если этоподход правильный, я был бы признателен за любую помощь, чтобы исправить эти ошибки

1 Ответ

0 голосов
/ 26 сентября 2011

Из того, что я понимаю, вопрос заключается в том, что вы хотели бы передавать данные между несколькими Действиями? Например, какой-то процесс создания мастера, где вы можете передавать данные между несколькими действиями?

Если это так, то вот некоторые связанные вопросы и ответы на них:

Как передать данные через ActionResults в MVC 3?

проблемы многоэтапной регистрации в asp.net mvc (разделенные модели, одна модель)

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