为剃刀部分定义ViewModel,如果只有一个,则显示一个表单,如果是多个,则显示一个表

时间:2016-09-07 20:54:26

标签: c# asp.net-mvc razor asp.net-core-mvc

我需要使用MVC创建一个部分视图,如果只有一个,它将显示一个项目列表,如果只有一个,则显示一个html表单。

我应该专门为具有以下内容的部分创建一个ViewModel:

def next_numb(n)
  x = n + 1
  until x % 2 == 1 && x % 3 == 0 && unique_digits?(x)
    x += 1
  end
  x
end

def unique_digits?(num)
  num.to_s.split('').uniq == num.to_s.split('')
end

next_numb(13)  #=> 15
next_numb(15)  #=> 21
next_numb(125) #=> 129

或者我只是发送列表会更好。如果我只是发送列表,我能够将第一个(也是唯一的)项绑定到表单吗?

目标是将单个产品属性绑定到表单(如果只有一个,如果多个循环通过它们并在html表中输出。)

1 个答案:

答案 0 :(得分:1)

如果模型包含单个属性,对我来说似乎更简单 - 称之为Products,因为它是一个集合。在视图中,测试其Count()并呈现表单或表格。绑定不会成为问题 - 只需First()。{/ p>即可获取Count() == 1

如果您有两个属性,如果它们都有数据,您会怎么做?如果单值属性中的产品与集合中的第一个产品不同,该怎么办?哪一个获胜?

您可以通过在控制器或模型本身中实施业务规则来解决这些问题 - 但如果您只有一个集合,则可以完全避免这些问题。