新的C#和MVC。我想实现的是将一个变量作为ViewData从一个视图传递到另一个视图,而不使用ActionResult中的ID,因为此视图会生成它自己的变量。我相信有更好的方法来做到这一点,但在这里我认为可能会工作。 首先,我做了一个模型:MVC3 C#4.0 /在视图之间传递变量
public class EventToShow
{
public Int64? ID { get; set; }
public Int64? EventID { get; set; }
}
然后我从第一个视图(Telerik的MVC GRID)传递的变量事件ID使用下列内容:
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 Action中合并返回的[name]。
我的问题,是有没有更好的方式来实现什么,我试图做的,如果这种做法是正确的,我是这么理解的,问题是我希望得到任何帮助修复这些错误
我检查这个链接,并找到了答案http://msdn.microsoft.com/en -us /库/ dd394711.aspx。 – hncl
最好将您的链接发布为答案并将其标记为一个。这样人们会看到这个问题已经被回答了,没有人需要看它;) –
解决方案没有按我所希望的那样工作,变量没有传递给第三个动作。 – hncl