使用不使用html.actionlink的锚标记将多个参数传递给另一个操作

时间:2013-12-24 15:13:55

标签: c# html asp.net-mvc asp.net-mvc-4

我想使用锚标记而不是Html.ActionLink通过查询字符串将2或3个参数传递给另一个操作结果,因为我在C#中动态地将锚标记添加到特定元素。

这里dt是包含columnd的表是survey_id和vin。

我正在尝试将特定列值替换为超链接并将params传递给另一个操作。请参考下面的代码。

string surveyId ,vin;

foreach (DataRow dr in dt)
{
    // Url.Action(
    surveyId = dr["Survey_Id"].ToString();
    vin = dr["VIN"].ToString();
    //dr["Survey_Id"] = "@Html.ActionLink(" + surveyId.ToString() + ",'Index','SurveySummary', new RouteValueDictionary(new { area = 'Corporate' }), new { @class = 'NNAHyperlink' })".ToString();
    dr["VIN"] = "<a href='../corporate/surveysummary?vinid='"+vin+"class='HyperLink' style='text-decoration: underline;'>" + vin + "</a>";
}  
企业是控制人,调查总结是行动结果之一。我需要动态地将vin以及调查ID传递给另一个动作。

但我试图动态传递vinid,它无法正常工作

它返回的网址类似于http://xx.com/corporate/surveysummary?vinid=

我怎么能改变这个?

1 个答案:

答案 0 :(得分:2)

我使用url.action。尝试

@Url.Action("Action", "Controller", new { surveyId = dr["Survey_Id"].ToString(), vin = ...

编辑: 关于你的最后评论,最简单的方法是使用viewbag。所以在你的控制器中:

ViewBag.SurveyId = dr['Survey_Id'].ToString();
ViewBag.Vin = vin;

然后在你的观点上

<a href= '@Url.Action('Index', 'corporate/surveysummary', new { surveyId = ViewBag.SurveyId })'>@ViewBag.Vin</a>