Использование функции обрезки в ASP.net MVC 3 - PullRequest
0 голосов
/ 29 марта 2012

Привет всем новичкам в MVC, и мне нужно обрезать некоторые% 20 моих данных, чтобы они отображались правильно. В данный момент мой CRUD правильно отображает индекс и может редактировать записи, созданные пользователем, но когда я пытаюсь редактировать запись, которая была из устаревшей базы данных, она не работает и выдает ошибку, что ресурс не может быть найден. Я посмотрел поближе на URL-адрес устаревших записей базы данных и увидел, что после большинства записей базы данных было% 20% 20% 20% 20% 20. Это говорит мне о том, что за записями базы данных следуют лишние пробелы, так как это означает% 20. Я провел некоторое исследование и обнаружил, что функция «Трим» может избавить меня от посторонних символов. Я просто не понимаю, как использовать функцию обрезки в моей конкретной ситуации.

Я думаю, что мне нужно использовать функцию в моем контроллере под моим Edit ActionResult, но когда я попробовал это в нескольких разных местах, мне не повезло. Я думал, что понял, как работает эта функция, но без изменений в результате, к лучшему, я застрял. Я надеюсь, что это достаточно хорошо объясняет проблему, ниже я разместил код для моего контроллера с моими методами CRUD, но если вам нужно, чтобы я опубликовал какие-либо другие классы, дайте мне знать.

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

PaController

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DBFirstMVC.Models;
using System.Data;

namespace DBFirstMVC.Controllers
{
    public class PaController : Controller
    {
        PaEntities db = new PaEntities();
        //
        // GET: /Pa/

        public ActionResult Index()
        {
            using (var db = new PaEntities())
            {
                return View(db.iamp_mapping.ToList());
            }
        }

        //
        // GET: /Pa/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /Pa/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Pa/Create

        [HttpPost]
        public ActionResult Create(iamp_mapping IAMP)
        {
            try
            {
                using (var db = new PaEntities())
                {
                    db.iamp_mapping.Add(IAMP);
                    db.SaveChanges();
                }

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Pa/Edit/5

        public ActionResult Edit(string id)
        {

            using (var db = new PaEntities())

            {
                string trimmedID = id.Trim();
                return View(db.iamp_mapping.Find(trimmedID));
            }
        }

        //
        // POST: /Pa/Edit/5

        [HttpPost]
        public ActionResult Edit(string id, iamp_mapping IAMP)
        {
            try
            {
                using (var db = new PaEntities())
                {
                    db.Entry(IAMP).State = EntityState.Modified;
                    db.SaveChanges();
                    return RedirectToAction("");
                }
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Pa/Delete/5

        public ActionResult Delete(string id)
        {
            using (var db = new PaEntities())
            {

                return View(db.iamp_mapping.Find(id));
            }
        }

        //
        // POST: /Pa/Delete/5

        [HttpPost]
        public ActionResult Delete(string id, iamp_mapping IAMP)
        {
            try
            {
                using (var db = new PaEntities())
                {
                    db.Entry(IAMP).State = EntityState.Deleted;
                    db.SaveChanges();
                    return RedirectToAction("");
                }

            }
            catch
            {
                return View();
            }
        }
    }
}

Ответы [ 2 ]

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

Вы правильно используете функцию обрезки, поэтому, похоже, ваша проблема в другом месте.Тем не менее, я бы посоветовал вам выполнить обрезку перед отображением страницы индекса, в противном случае вам придется обрезать идентификатор в любых действиях, которые принимают идентификатор в качестве параметра (редактировать, удалять и т. Д.).

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

Похоже, что вы хотите HttpUtility.HtmlDecode:

http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx

...