您好我有以下情况:我有2个控制器A和B.我想从A发送给B一个对象..使用B的一些动作然后返回到A. 另一方面,我也想直接访问B.
到目前为止,我的数据流如下:
<svg preserveAspectRatio="none" ...
问题在于控制器B.因为我可以通过两种方式访问它(依赖于A或不依赖)到目前为止,我将传递依赖关系 - &gt; Action-&gt; View-&gt; Action..etc- &gt;回到控制器A,不会失去它,如下图所示:
Controller A ->Action-> View->Actionlink(object,Controller B)
正如你所看到的,我会继续将依赖从动作传递到视图,如果不是null,直到我完全循环(我回到A)。我真的需要做所有这些咕噜咕噜的工作吗?
如果情况变得更复杂,请说:
Controller B
{
Action1(Dependency c?)
{Viewbag.dependency=c??0;...} -> View(....ajax(depedency,Action2)
Action2(Dependency c?)
{} -> View.depedency=c??0...} -> View(ajax(dependency,Action3)
.....
ActionN(Dependency c?)
{
ReturnRedirect("action1",ControllerA)
}
我可以分别访问三个控制器中的任何一个,但是我可以从A到B进行依赖和近圆,或者从B继续到C并关闭圆圈。那会是一个好方法吗?
答案 0 :(得分:-1)
我正在使用NewtonSoft库传递给另一个控制器:
tempData[key]=JsonConvert.SerializeObject(value);
我使用了以下扩展方法:
public static class TempDataExt
{
public static void Put<T>(this ITempDataDictionary tempData,string key,T value)
{
tempData[key]=JsonConvert.SerializeObject(value);
}
public static T Get<T>(this ITempDataDictionary tempData, string key) where T : class
{
object o;
tempData.TryGetValue(key, out o);
return o == null ? null : JsonConvert.DeserializeObject<T>((string)o);
}
}
获取我正在使用的tempdata对象:
ViewData["tlocations"]=JsonConvert.SerializeObject(TempData.Get<IEnumerable<long>>("tlocations"));
TempData.Keep();