假设我们有一个控制器cal Home
,其行为为Index
。该操作的关联视图也称为Index
现在假设我们有一个名为DataModel
的模型,使用Index
视图在@model ProjectName.Model.DataModel
视图中使用Razor引用。现在,下面是类的声明:
模型
public class DataModel
{
int property1 {get; set;}
string ReturnURL {get ; set;}
}
控制器
public class HomeController : Controller
{
public ActionResult SomeAction(string returnUrl)
{
var model = new DataModel
{
ReturnURL = returnUrl;
}
return View(model);
}
}
调用SomeAction
时,会传递一个字符串。我正在读一个tutorial,其中字符串的值不为空。我理解的是我们直接传递了一个DataModel
对象但只有一个属性....我不明白它(我们也知道它的属性,因为它与属性的名称相同。 .upper / lower case不受尊重)
在本教程中,使用该单个字符串参数的操作在教程的第6部分中为Login
和GetRedirectUrl
...
这就是为什么我询问是否将模型属性传递给某个动作会自动检索该属性值。或者,您可以从参数字符串returnUrl
从哪里获取其值来解释我。
答案 0 :(得分:1)
returnUrl的值来自模型绑定器。取决于您的路由设置方式。
它可以是查询字符串:
或通过路线
就像我说的那样取决于你的路线配置。还要记住,returnUrl需要进行http编码。
答案 1 :(得分:0)