0

不确定我是否遵循 MVC 约定,但我有一些变量从一个控制器 A 传递到控制器 B。我的目标是拥有另一个名为“发布”的视图ActionLink,并在单击它时进行一些处理。

来自控制器 A 的重定向:

var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Publish", new { accTok = facebookAccessTok, fullImgPath = fullpath });
            return Json(new { Url = redirectUrl });   

我现在在控制器 B 的“发布”索引中有“accTok”和“fullImgPath”的值,控制器 B 在其视图中包含一个 ActionLink 来进行处理,但我不确定如何将它们传递给我的“发布”视图结果' 方法:

namespace SF.Controllers
{
    public class PublishController : Controller
    {

    public ViewResult Index(string accTok, string fullImgPath)
        {
            return View();
        }

        // This ViewResult requires the values 'accTok' and 'fullImgPath'
        public ViewResult Publish()
        {
            // I need the values 'accTok' and 'fullImgPath'
            SomeProcessing();
            return View();
        }

        public SomeProcessing(string accessToken, string fullImagePath)
        {
            //Implementation
        }
    }
}

索引视图:

 @{
        ViewBag.Title = "Index";
    }

    <h2>Publish</h2>

    <br/><br/>

    @Html.ActionLink("Save Image", "Publish")
4

2 回答 2

0

I would suggest doing this

public ViewResult Publish(string accTok, string fullImgPath)
        {
            SomeProcessing(accTok,fullImgPath);
            return View();
        }
于 2012-08-16T04:26:39.413 回答
0

在您的控制器中:

public ViewResult Index(string accTok, string fullImgPath)
{
    ViewModel.Acctok = accTok;
    ViewModel.FullImgPath = fullImgPath;
    return View();
}

public ViewResult Publish(string accTok, string fullImgPath)
{
    SomeProcessing(accTok,fullImgPath);
    return View();
}

在视图中:

@Html.ActionLink("Save Image", "Publish","Publish",new {accTok=ViewModel.Acctok, fullImgPath=ViewModel.FullImgPath},null )

除了 ActionLink,您还可以将其设为带有隐藏输入字段的表单(如果此方法更改数据库/磁盘上的内容,它实际上应该在帖子中)。

但是无论如何使用视图模型将参数从索引操作传递到视图,以便反过来将它们发送到发布操作。这通常是在 MVC 中使用无状态 Web 的方法。

于 2012-08-16T09:36:19.910 回答